hdt manual
Post on 24-Jun-2015
132 Views
Preview:
TRANSCRIPT
Sigasi HDT User Manual
Sigasi Team
September 14, 2010
CONTENTS
1 Introduction 3
2 Setting up Sigasi HDT 52.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Software updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Setting up a project 73.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 Starting a new project from scratch . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3 Pointing to an existing VHDL project . . . . . . . . . . . . . . . . . . . . . . . . . 73.4 Importing a project from an archive . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 VHDL Libraries 94.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 VHDL library concepts in Sigasi HDT . . . . . . . . . . . . . . . . . . . . . . . . . 94.3 External libraries usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.4 Library configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.5 Library configuration use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 User Interface 135.1 Project views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.2 Project view usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.3 Project exploration and navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6 VHDL-specific editing 156.1 Block selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.2 Align . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.3 Move lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.4 Indent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156.5 Fix Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7 Linting and quickfixes 177.1 Marker icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.2 Severity level configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.3 Linting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177.4 Quickfixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
8 Autocompletion 19
i
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2 Autocompletion interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.3 Autocompletion based on the VHDL language . . . . . . . . . . . . . . . . . . . . 198.4 Autocompletion based on the design context . . . . . . . . . . . . . . . . . . . . . 20
9 Refactoring 219.1 The refactoring interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219.2 Available refactorings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
10 Integration with external tools 2310.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2310.2 External Tools Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2310.3 Creating a builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2410.4 Automatic makefile generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
11 Preferences 31
12 Troubleshooting 33
13 Keyboard shortcuts 3513.1 Top 11 keyboard shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3513.2 Keyboard shortcut reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Index 39
ii
Sigasi HDT User Manual
Contents:
CONTENTS 1
Sigasi HDT User Manual
2 CONTENTS
CHAPTER
ONE
INTRODUCTION
Sigasi HDT is the compelling next-generation development environment for VHDL designers.
Sigasi HDT is an intelligent development environment (IDE). It differs from other develop-ment tools in that it contains an ultra-fast VHDL parser and compiler that runs transparentlyin the background. At any given moment as you make modifications, the tool fully under-stands the design in terms of VHDL concepts. This technology makes it possible to support awide range of powerful features:
Intelligent navigation Navigate to any VHDL object in the design by selecting it in a hierar-chical view. Or directly navigate from an object to its declaration.
Instant error reporting Get immediate feedback on errors introduced by a modification.
Quickfixes Fix errors by using a quickfix proposed by the tool.
Intelligent code completion Use the tool to assist in completing VHDL constructs based onits knowledge of the design.
Refactoring Use the tool to make sophisticated code transformations that maintain the behav-ior of the design.
All these features create a novel user experience that greatly improves productivity.
The last feature that was mentioned, refactoring, is Sigasi HDT’s most innovative and powerfulfunctionality. Refactoring is a modern software development technique. Sigasi HDT imple-ments it for digital hardware design.
Refactoring makes a new level of automation available to the designer. You can use it to makecode clearer and more reusable, to find bugs, and to prepare code for adding new functionality.Examples of refactorings are:
• intelligent rename of VHDL objects over the whole design
• making all modifications to add or remove a port in a single action
• making all modifications to add or remove a connection in a single action
• modifying design hierarchy
• making code technology independent
Refactoring is a large topic on itself. For that reason, we have written a dedicated book aboutit: The VHDL Refactoring Book (in The VHDL refactoring book).
3
Sigasi HDT User Manual
4 Chapter 1. Introduction
CHAPTER
TWO
SETTING UP SIGASI HDT
2.1 Installation
Sigasi HDT is distributed online or on a CD-ROM. To install it, first find the right archive foryour platform according to the following table:
Platform Archive nameLinux HDT-linux-<version>.zipWindows HDT-win32-<version>.zipMac
Choose or create a folder where you want to install the software, and unpack the archive there.The archive contains a single top-level folder called hdt. Inside the hdt folder there is anapplication startup file, also called hdt. Start the application by executing the hdt startup file.
2.2 Configuration
Sigasi HDT stores its projects on the file system in one or more workspaces.
When you start the tool for the first time, it will suggest to create a workspace for
you: Although you can work with multipleworkspaces, we recommend to use a single workspace for all your projects.
2.3 Software updates
Sigasi HDT has an automated update system. When updates are available, you arenotified by a pop-up window called Updates Available in the bottom right corner:
5
Sigasi HDT User Manual
If you want to install the updates, click any-where in the pop-up window. After a few seconds, a new window will appear with furtherinstructions.
The updates can be postponed by closing the pop-up. You can perform the updates at any
time by clicking the -icon in the status bar at the bottom of the screen.
Consult the troubleshooting section if the update does not start automatically.
6 Chapter 2. Setting up Sigasi HDT
CHAPTER
THREE
SETTING UP A PROJECT
3.1 Introduction
Your work with Sigasi HDT is organized as a project. A project is a collection of VHDL filesthat belong together. Sigasi HDT understands the VHDL units defined in the files, and therelationships between them.
Your first step with Sigasi HDT is to set up a project. There are a number of ways to do this:
• Starting a new project from scratch
• Converting an existing VHDL folder into a HDT project
• Importing a HDT project from an archive
Each of these methods is discussed in detail in the following sections.
3.2 Starting a new project from scratch
To create a new project, select File→ New→ VHDL Project. Then give your project a name.
By default, the Use default location checkbox is checked, which means that new projects willbe located in the workspace folder. Alternatively, you can uncheck the checkbox and choosean arbitrary location for your project instead.
After creating a new project, you can add existing files by dragging them from your filesysteminto the project explorer. New files can be added by clicking File→ New→ VHDL file.
3.3 Pointing to an existing VHDL project
If you have an existing VHDL project, you can easily start working on it with Sigasi HDT.
To create a new HDT project from you existing VHDL project, use File → New → Point toexisting VHDL project. Then, select the top level folder of your existing VHDL project. SigasiHDT will add a few hidden project files to your folder, and the project is ready to be used fromSigasi HDT.
7
Sigasi HDT User Manual
3.4 Importing a project from an archive
Sigasi HDT projects can be shared with others using file archives. All project-related settingsare stored in two hidden files in the project folder. Therefore, you can just create an archive ofthe entire top level folder (File→ Export→ General→ Archive file) and send it to someone else.
To import a project from an archive, point Sigasi HDT to the project by clicking: File→ Import→ General → Existing projects into Workspace. Next select Select archive file:, browse to yourproject archive, and press Finish.
8 Chapter 3. Setting up a project
CHAPTER
FOUR
VHDL LIBRARIES
4.1 Introduction
VHDL libraries are a very powerful albeit slightly complex feature of the VHDL language.Sigasi HDT tries to make it easy and straightforward to configure and use them.
In this chapter, we assume that the basic concepts of VHDL libraries are understood. We willexplain how they are implemented in Sigasi HDT.
We will also present some use case about how to set up VHDL libraries with Sigasi HDT toorganize your projects.
4.2 VHDL library concepts in Sigasi HDT
Sigasi HDT makes a distinction between 3 types of VHDL libraries.
Project libraries These are the libraries in which you store your designs. You have full read-write access to these libraries.
External libraries These are libraries that you need in your design, but that can be treated asread-only.
Built-in libraries The standard VHDL libraries, std and IEEE, are built-in in Sigasi HDT.This means that they are always available without any additional configuration. This isdone for convenience, as any VHDL project will need parts of them.
4.3 External libraries usage
When you define a library as external, you indicate that it is read-only. This has a numberof advantages. First, you cannot accidentally change files that are not in the current project.Moreover, Sigasi HDT will preprocess the files and cache their contents for quick access. This isespecially important for certain third party libraries that contain huge amounts of information.
When an external library is modified by some action outside of the project, the cache becomesout of date. The next time the project is fully compiled, the external library will be recompiledby Sigasi HDT.
9
Sigasi HDT User Manual
Warning: Sigasi HDT currently does not inform you when an external library cache is outof date. To trigger a full recompile of the project, press F6.Also, a software update may render the cache out of date. To reset the cache, select Window→ Preferences→ Libraries and press reset cache.
4.4 Library configuration
4.4.1 Introduction
Like with any VHDL tool, Sigasi HDT needs to know where the libraries are located on the filesystem. In this section, we will describe how library configuration works in Sigasi HDT.
4.4.2 Examining the library configuration
To examine the VHDL library configuration, select Project→ Properties→ Libraries. Per VHDLlibrary, three attributes are listed:
At-tribute
Meaning
name The name of the library.loca-tion
Library location in the form type:/path. type is project for a project library, filefor an external library, and resource for a built-in library. path specifies the pathof the library’s folder on the file system.
ex-cludes
Files and folders that are excluded from the library.
The library location folder is used by Sigasi HDT as the top of a search tree for VHDL files.This means that all subfolders are considered recursively.
4.4.3 Default library configuration
By default, the standard VHDL libraries std and IEEE are configured as built-in resourcelibraries. Moreover, library work is defined as a project library with the top-level project di-rectory as its location.
4.4.4 Editing the library configuration
The library configuration described in the previous section is fully editable. You can use theadd button to add a new library and the remove button to remove an existing library. Further-more, with the edit button a library’s attributes can be modified as follows:
10 Chapter 4. VHDL Libraries
Sigasi HDT User Manual
At-tribute
Edit interface
name The project or external library name can be defined or changed in text field.loca-tion
Press Select external folder for an external library, or Select project folder for aproject library. In both cases, a file browser pops up that lets you select the folderpath. For a project library, this will be relative to the top project folder.
ex-cludes
A file browser pops ups that lets you select files and folders that should beexcluded from consideration as VHDL project files.
4.4.5 Library configuration using a quickfix
A convenient way to configure a new library is by using a quickfix. Start by typing the li-brary declaration of the new library in your code. Sigasi HDT will flag an error and proposethe quickfix Define undefined library. If you choose the quickfix, the library configurationwindow will open with the new library ready to be defined further.
4.4.6 Using a subfolder as the location for another library
Recall that a library’s location folder is used as the top of a search tree for VHDL files.
Sometimes you may want to use a subfolder of a library location as the location of anotherlibrary. Sigasi HDT lets you do this without a problem. Just specify the subfolder as thelocation for the new library. All files found in the subfolder tree will become part of thatlibrary instead of the original one.
Note that the order of the library configurations does not matter. When assigning files tolibraries, Sigasi HDT will use the most specific location definition.
4.4.7 Defining multiple locations for a library
Sometimes it may be convenient to have multiple locations to search for library files. In SigasiHDT, you can add multiple entries for the same library, each with a different location. Alllocations will be considered when looking for VHDL files.
You can even use mix project and external locations for the same library. However, this is notrecommended practice, with the possible exception of the special library work.
4.5 Library configuration use cases
4.5.1 Introduction
Libraries are a powerful but somewhat underutilized feature of VHDL. Sigasi HDT makes iteasy to set them up and take advantage of them. In this section, we describe a number of usecases for working with libraries in Sigasi HDT.
4.5.2 Using the default configuration
Some projects may only need standard libraries and library work. In that case, no additionallibrary configuration is needed. You can just go ahead with the default configuration.
4.5. Library configuration use cases 11
Sigasi HDT User Manual
4.5.3 Using third party libraries
Many projects use third party libraries. These should be defined as external libraries.
A number of popular third party libraries are the following:
Vendor Library Install dir exampleXilinx unisim C:\Xilinx\10.1\ISE\vhdl\src\unisimsXilinx XilinxCoreLib C:\Xilinx\10.1\ISE\vhdl\src\XilinxCoreLibXilinx simprim C:\Xilinx\10.1\ISE\vhdl\src\simprimsAltera altera_mf C:\altera\81\quartus\libraries\vhdl
As an example, we will show how to configure the Xilinx library XilinxCoreLib as an ex-ternal library. Add the following line to your vhdl file:
Library XilinxCoreLib;
When you save, a quick fix icon occurs next to the new line. Select the quickfix Defineundefined library. The library configuration window pops up, with the XilinxCoreLiblibrary marked as undefined.
Select the library location and press edit. A library definition window popsup. Select Select external folder to define the library as external. Thenbrowse to \vhdl\src\XilinxCoreLib in the Xilinx installation to de-fine the path of the library’s folder, and click OK. A pathname similar toC:/Xilinx/10.1/ISE/vhdl/src/XilinxCoreLib will appear. Click OK. As thelibrary is external, the specified folder is scanned for all vhdl files. All these files arepreprocessed and cached for quick access.
4.5.4 Using libraries to organize internal projects
In many organizations, new projects reuse older ones. Moreover, some projects may be set upas IP projects for which reusability is the primary design goal.
It is good practice to use libraries to organize reusable projects. Libraries improve designclarity and avoid name clashes between design units from different projects.
Only the current project should be defined as a project library. The reusable projects that itrefers to should be defined as external libraries. As external libraries are read-only, such aset-up makes the project’s purpose clear and avoids mistakes.
4.5.5 Using libraries to organize design variants
Sometimes it is required to maintain multiple variants of a design unit. For example, an entitydefinition may need to be slightly different depending on the target technology. Although theyare different, you may want to refer to the “same” entity by the same name. Conceptually, sucha problem can be solved by defining the same identifier in different namespaces.
VHDL libraries can emulate namespaces. For example, you could define a library MY_PROJ forthe common design units of a project. In addition, you could define libraries for technology-dependent design units, for example MY_PROJ_XILINX and MY_PROJ_ALTERA. The set-upgives you the required flexibility and clarifies the purpose of all design units.
12 Chapter 4. VHDL Libraries
CHAPTER
FIVE
USER INTERFACE
5.1 Project views
When you open a project in Sigasi HDT, a number of views are presented inthe user interface. Here is a typical screenshot, with the views highlighted:
The functionality of the views is as follows:
project explorer view This view is a hierarchical representation of all files in all projects. Youcan use it to navigate to a particular file in a particular project and select it.
editor view In this view, the contents of the currently selected file are shown. The file contentscan be directly edited here.
problems view In this view, all problems that were detected in the current project are listed.
outline view This view shows the contents of the selected file in terms of VHDL objects. Youcan use it to review the content, and to navigate to a specific VHDL object.
hierarchy view This view shows the VHDL design hierarchy, starting from the VHDL designunits defined in the currently selected file.
5.2 Project view usage
The hierarchy view and the outline view are alternative views on similar information. Youcan switch between them by using the tabs in the containing window. You can also resize theviews by dragging the view separators or reorganize them by dragging the tab label.
13
Sigasi HDT User Manual
The outline and hierarchy view are automatically synchronized with the editor every time thefile is saved. The project explorer view can also be linked with the editor by clicking the link
icon . This is particularly handy for large projects.
The project explorer view can be customized to define which files are shown. Select the icon
View Menu ( ) and then Customize view. You can then select a filter whose matching filesare hidden in the project explorer view.
5.3 Project exploration and navigation
Sigasi HDT offers powerful techniques to explore a project and navigate through it.
Hovering To find the declaration of a given identifier, hold your mouse pointer over it. Afterabout a second, a popup shows you the name and datatype of the signal. This techniqueis called hovering.
Highlighting If you click on an identifier, it is highlighted. In addition, all other occurrencesof the identifier that refer to the same object are highlighted. Note that this highlightingis intelligent: it is not based on the identifier’s string value, but on the object that theidentifier refers to.
Navigate to a declaration You can easily navigate to the declaration of any port, signal, entity,etc. Place the cursor on the identifier, right-click and select Open Declaration. The edi-tor immediately switches to the line that declares the object. Since this operation is socommonly used, it is assigned to the shortcut key F3.
Finding object occurrences To look for occurrences of a given identifier in different files, placeyour cursor on the identifier and right-click. Now select Search References. A search win-dow will appear on the bottom of your workbench, displaying all occurrences of theselected identifier. You can easily navigate through all occurrences by clicking the ShowNext Match arrow and the Show Previous Match arrow in the search result view. Notethat all occurrences are highlighted and marked with a small arrow at the left border ofthe editor for easy recognition.
14 Chapter 5. User Interface
CHAPTER
SIX
VHDL-SPECIFIC EDITING
In addition to the powerful features of an Eclipse editor, Sigasi HDT supports a number ofadvanced editing features which are specifically useful for VHDL editing. These are describedin this chapter.
6.1 Block selection
Block selection is an alternative for standard (paragraph) selection. Block selection mode dif-fers from standard selection mode in that it allows to select rectangular regions, or to set thecursor over multiple lines. Block selection is ideal for selecting vertical regions, for example acolumn of a table or all port names in a port map.
To toggle between normal and block selection modes use Alt+Shift+A or Edit→ Toggle BlockSelection
6.2 Align
You can align the current selection with Edit→Align. Aligning is done by looking at a commondelimiter string in consective lines. The supported delimiter strings are: <= , := => :
Blank lines and comment lines are ignored. Both tabs and spaces are supported.
6.3 Move lines
You can easily move lines up and down by pressing Alt+Up and Alt+Down.
6.4 Indent
You can easily clean up the indentation and remove trailing whitespaces in the current selec-tion, by pressing Ctrl+I.
15
Sigasi HDT User Manual
6.5 Fix Case
VHDL is case insensitive. However, for clarity’s sake it is best to keep the case of identifiersand keywords consistent throughout the project.
By right-clicking in the editor window, you can access the Fix Case refactoring. This actioncleans up the case of the keywords and indentifiers in your file as follows:
• keywords are in lowercase
• enumeration literals are in uppercase
• constants are in uppercase
• the case of other objects is fixed according to their declaration
16 Chapter 6. VHDL-specific editing
CHAPTER
SEVEN
LINTING AND QUICKFIXES
7.1 Marker icons
• marks an info message.
• marks a warning that can be resolved automatically with a quickfix.
• marks a warning cannot be resolved automatically.
• marks an error that can be resolved automatically with a quick fix.
• marks an error that cannot be resolved automatically.
7.2 Severity level configuration
Sigasi HDT has reasonable defaults for the severity level of reported problems. How-ever, the severity level of certain classes of problems is configurable for additional flexi-bility. The configuration interface is available in Window → Preferences, Errors/Warnings.
In the same window, you can set the maximumnumber of markers per file.
7.3 Linting
Sigasi HDT provides info about potential problems in the design. The following problems arereported:
Unused declaration
17
Sigasi HDT User Manual
Declaration could not be found
Missing signal in sensitivity list Both clocked and combinatorial processes are understood.
Unnecessary signal in sensitivity list Both clocked and combinatorial processes are under-stood.
7.4 Quickfixes
Remove declaration An unused declaration is removed.
Generate signal declaration Automatically declare an undeclared signal
Correct sensitivity list The tool will remove or add signals to the sensitivity list, so that itcomplies with synthesizability guidelines.
Define undefined library This quickfix lets you define an undefined VHDL library. See Li-brary configuration using a quickfix.
18 Chapter 7. Linting and quickfixes
CHAPTER
EIGHT
AUTOCOMPLETION
8.1 Introduction
Sigasi HDT provides powerful autocompletion capabilities. This means that the tool can helpyou to complete identifiers and constructs as you are working on the code. Like other tools, thetool provides autocompletion based on the VHDL language. However, it goes much further. Italso provides autocompletion based on the design context. It can provide this additional levelof intelligence as it knows all objects that have been declared in the design.
8.2 Autocompletion interface
Autocompletions may come from different sources, as will be discussed in the following sec-tions. However, the user interface to initiate them is always the same. At any point as you areentering code, you can press CTRL-SPACE and the tool will suggest appropriate autocomple-tions.
Some autocompletions are templates which require further user input. In such a case, theeditor goes into a special template editing mode after the autocompletion has been performed.You can use TAB to cycle through the items that have to be modified or completed. Whendone, you can press ENTER to return to the normal editing mode. The cursor will be placed atan appropriate position to continue working.
8.3 Autocompletion based on the VHDL language
8.3.1 VHDL keywords
As you are typing code, Sigasi HDT can autocomplete any VHDL keyword.
8.3.2 VHDL declaration templates
Sigasi can help you to declare VHDL objects, using autocompletion based on templates. Thereare templates for the declaration of the following VHDL objects:
• function
• procedure
19
Sigasi HDT User Manual
• process
• type: enum, file, range, array, record
• signal, constant, variable
• component
• entity
• architecture
• entity/architecture pair
• package
After the autcompletion, the editor will be into templating editing mode.
8.4 Autocompletion based on the design context
Sigasi HDT uses its knowledge of the design to provide intelligent autocompletions that canboost productivity tremendously.
8.4.1 Identifiers
The tool knows which objects are appropriate and which identifiers are visible at any givenpoint in the code. As you start typing and ask for an autocompletion, it will therefore suggestthe appropriate identifiers as autocompletion candidates.
8.4.2 Instantiations and component declarations
The tool provides help to autocomplete instantiations and component declarations.
Instantiating an entity Sigasi HDT knows all entities in the design and their interfaces, andcan therefore automate much of the instantiation process. At the point in the code whereyou normally enter the entity name, you can use autocompletion instead to suggest alist of possible entities. Upon selection, the tool will complete the instantiation with ageneric map and a port map with named associations. As an initial suggestion, eachactual parameter will have the same name as its formal parameter. Of course, the actualparameter names need to be reviewed and edited by the user. Therefore, the editor willgo into template editing mode after the autocompletion.
Instantiating a component Instantiating a component is similar to instantiating an entity. Ac-tually, all known components will also be listed as autocompletion candidates.
Declaring a component If you want to use instantiation based on a component (as opposedto direct instantiation) you need to associate an entity with a component. Sigasi HDTcan automatically declare a component for an existing entity. At the point where younormally enter the component name, you can use autocompletion instead to show the listof available entities. Upon selection, the tool will automatically complete the componentdeclaration.
As you can see, the autocompletion capabilities in Sigasi HDT greatly reduce the overheadassociated with writing structural VHDL.
20 Chapter 8. Autocompletion
CHAPTER
NINE
REFACTORING
9.1 The refactoring interface
The basic interface to access a refactoring is to right click on a selected identifier or a line in aview. Depending on the selection and the view, a list of appropriate refactorings is shown.
For example, the Rename refactoring is available for an identifier in the editor view. Otherrefactorings are available in the outline view and the hierarchy view.
9.2 Available refactorings
9.2.1 Add Generic
For background info, see Add Generic (in The VHDL refactoring book) in The VHDL RefactoringBook (in The VHDL refactoring book).
9.2.2 Add Port
For background info, see Add Port (in The VHDL refactoring book) in The VHDL Refactoring Book(in The VHDL refactoring book).
9.2.3 Change Positional to Named Association
For background info, see Change Positional To Named Association (in The VHDL refactoring book)in The VHDL Refactoring Book (in The VHDL refactoring book).
9.2.4 Connect Instance
For background info, see Connect Instance (in The VHDL refactoring book) in The VHDL Refactor-ing Book (in The VHDL refactoring book).
9.2.5 Disconnect Instance
Not implemented yet.
21
Sigasi HDT User Manual
9.2.6 Encapsulate Concurrent Statements
For background info, see Encapsulate Concurrent Statements (in The VHDL refactoring book) inThe VHDL Refactoring Book (in The VHDL refactoring book).
Tip: The encapsulate refactoring is often used to avoid code duplication. To detect codeduplication you can use the internal compare function. To compare two files: select the twofiles in the project explorer, right-click and select Compare With→Each Other.
9.2.7 Rename
For background info, see Rename (in The VHDL refactoring book) in The VHDL Refactoring Book(in The VHDL refactoring book).
9.2.8 Remove Generic
Not implemented yet.
9.2.9 Remove Port
Not implemented yet.
22 Chapter 9. Refactoring
CHAPTER
TEN
INTEGRATION WITH EXTERNALTOOLS
10.1 Introduction
Sigasi HDT supports a number of ways to integrate external tools, with varying degrees ofautomation. The simplest case is to add a menu item to start an external tool from withinSigasi HDT. This is done by creating an external tool configuration. You can also arrange foran external tool to be run automatically when a Sigasi HDT project is rebuilt. This is doneby creating a builder. Finally, Sigasi HDT supports automatic Makefile generation for completelyautomating the integration.
10.2 External Tools Configuration
Select Run→ External tools→ External Tools Configurations to get started, or use the -icon.
To create a new configuration, first select Program, then click .
Enter all necessary information to start your external tool:
• Name: The name for this configuration.
• Location: The location of the executable. You can browse for programs and scripts inyour workspace or programs on your file system.
• Working Directory: The working directory for your program.
• Arguments: The arguments, if any, to your program.
You can test your tool configuration with the Run button.
The following example screenshot shows how to set up con-figuration to run a simulate.sh script from within HDT.
23
Sigasi HDT User Manual
The following ex-ample screenshot shows how to set up a configuration to run make clean on a Linux
machine. To run theexternal tool just select the configuration from the dropdown menu (black triangle) on the
-icon. You can rerun the last configuration by simply clicking .
10.3 Creating a builder
An external tool configuration as described in the previous section makes it easy to run anexternal tool, but you still have to do so explicitly. For some programs, such as the makeutility, it makes sense instead to do this automatically upon a change in your project. This
24 Chapter 10. Integration with external tools
Sigasi HDT User Manual
functionality can be accomplished by a builder. We will show how to create a builder for aModelsim Makefile as an example.
To create a builder, right-click your project and select Properties→ Builders.
Click New... and the builder configuration window will pop up:
You will be askedto select a configuration type: select Program.
Next, configure the builder in a configuration window pop up window:
• Name: The name of your builder, e.g. ModelSim.
• Location: The location of the program, e.g. /usr/bin/make.
• Working Directory: The working directory for your program. For example, click BrowseWorkspace... and select the root folder of your project.
• Arguments: The arguments to your program, e.g. --makefile=Makefile.vsimall.
10.3. Creating a builder 25
Sigasi HDT User Manual
With the de-fault settings the ModelSim Makefile will only be run during a manual build orafter a “Clean”. To make sure Sigasi HDT runs make every time you save achange to a file, click the Build Options tab and check the During auto builds
26 Chapter 10. Integration with external tools
Sigasi HDT User Manual
checkbox.After configuration, the new builder will appear in the builder list.
10.3. Creating a builder 27
Sigasi HDT User Manual
When you closethe builder configuration dialog windows, the new builder will automatically be run. Inour example of a Modelsim Makefile, Modelsim’s messages will appear in the console view.
For the specific case ofModelsim, warnings and error messages in the console are made clickable. When you click amessage, the corresponding location will automatically be opened in the Editor view.
You can add as many extra builders as you want. This can be useful for additional linting toolsor code generators.
10.4 Automatic makefile generation
With a builder as described in the previous section, a program such as make can run automat-ically whenever your project changes. However, when you make a significant change to yourproject, the makefile itself may become obsolete and require nontrivial changes. To solve thisproblem, Sigasi HDT can automatically create and update a makefile for you.
Sigasi HDT can generate makefiles for a number of targets, including Modelsim vsim, XilinxIsim, and ghdl.
For example, to set up makefile generation for ModelSim, first verify that the Model-Sim commands vcom and vlib are on your system path. Right-click on your projectin the Project Explorer and select Properties. Makefile generation can be configuredin the Makefiles category. Enable Mentor Modelsim (vsim) and confirm with Apply.
28 Chapter 10. Integration with external tools
Sigasi HDT User Manual
The makefile is gener-ated when you perform a full rebuild of your project. Click Project → Rebuild project to forcethis build. The Makefile.vsim should appear in the Project Explorer now.
10.4. Automatic makefile generation 29
Sigasi HDT User Manual
30 Chapter 10. Integration with external tools
CHAPTER
ELEVEN
PREFERENCES
In the menu Window→ Preferences you can change the default settings of HDT. E.g. in VHDL→ Editor you can change the syntax highlighting colors and in VHDL → Templates you canchange or add templates for autocompletion.
31
Sigasi HDT User Manual
32 Chapter 11. Preferences
CHAPTER
TWELVE
TROUBLESHOOTING
I want a clean restart If you ever suspect that the state of your project is inconsistent in SigasiHDT, you can always force a complete clean compilation by selecting Project→ RebuildProject, or by just pressing F6. You can also reset the external library cache by selectingWindow→ Preferences→ Libraries and pressing reset cache.
The user interface is unresponsive If the user interface of Sigasi HDT is unresponsive, youcan always interrupt the internal compilation process by pressing the stop button in theprogress view. To activate the progress view, select Window → Show View → Other... →General→ Progress, or click the tiny conveyor belt icon , on the right side of the statusbar.
The editor displays old contents of a file If you edit a file outside of HDT with an externaleditor, HDT will normally notice the changes and ask you what to do. If it doesn’t, youcan refresh the editor’s content by pressing F5 or by right-clicking a file or a project inthe project explorer and selecting Refresh.
HDT says “Element cannot be renamed”? Currently Sigasi HDT does not support the re-naming of overloadable identifiers. Contact support@sigasi.com if you are interestedin this feature.
What version am I running? You can check if you have the latest update by clicking on help–> About Sigasi HDT –> Plugin details. The version number contains the date of therelease. (For example, version 1.0.0.20081218... was released on December 18, 2008.)
How much local history will be stored? Sigasi HDT stores multiple copies of your file so thatyou can compare your current version with the version you saved an hour ago.
You can define how much disk space is used for storing local history in Windows →Preferences, select General→Workspace→ Local History.
For more information on local history, check outhttp://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.user/gettingStarted/qs-55.htm
HDT analyzes VHDL files that I don’t need By default, HDT assumes that all VHDL files arepart of the project. However, some projects may contain multiple files with older oralternative definitions of a VHDL object. In such a case you will want HDT to ignorecertain files.
To exclude files (or directories) from analysis, you can use the library configuration prop-erty page (see Library configuration).
Ignored resource are decorated with a -icon in the project explorer view.
33
Sigasi HDT User Manual
How can I change the font size? Sometimes you want extra small fonts, so that you can fitmore content on your screen. Another time you may want extra large fonts, so that youcan use a beamer and your audience can see what you are doing.
Most fonts, including the font that is used by the editors, can be controlled in the pref-erences: Window→Preferences Fonts are controlled in General→Appearance→Colors andFonts. The font of the editors are in Basic→Text font.
Some fonts cannot be controlled in this preference page. These fonts are defined by gen-eral system settings, and are used for writing the menu names, the Project Explorer viewand the Outline and Hierarchy views. On Windows, you can change these fonts bychanging your font settings in the Windows Control Panel. On Linux, these fonts arecontrolled by a settings file: ${HOME}/.gtkrc-2.0 . You can change the font by adding aline like:
gtk-font-name = “Sans 10”
You have to restart Sigasi HDT before these changes take effect.
I don’t get automatic updates If the updates are not automatically fetched from our updateserver (https://update.sigasi.com) you are probably behind a firewall or proxy server.You can configure HDT’s proxy settings in Window→Preferences→General→Network con-nections. If you can not add a firewall exception for our update site, the fall back so-lution is to download the complete application from our website. You can completelyreplace your old installation; all settings are stored in your workspace (the default isworkspace-sigasi in your home directory).
I get a warning about single-file mode When you open a VHDL file with File→Open File,Sigasi HDT warns that you are editing in single-file mode. In this mode, Sigasi HDTdoes not understand your code as a VHDL design, and therefore its productivity fea-tures are not available. Single-file mode can be useful to edit files outside regular projectwork, but normally you should open VHDL files through a project. To learn how to setup a project, see Setting up a project.
34 Chapter 12. Troubleshooting
CHAPTER
THIRTEEN
KEYBOARD SHORTCUTS
As you become more experienced with Sigasi HDT, you will find that there are a number ofactions that you perform quite often. At some point, you may feel that the GUI-based approachbecomes too slow for these actions. For that reason, Sigasi HDT provides a number of keyboardshortcuts. They are a great way to boost your productivity even more. 1
In this chapter, we describe the available keyboard shortcuts.
13.1 Top 11 keyboard shortcuts
In this section, we list the most important shortcuts.
1. Open Resource (Shift+Ctrl+R) Shift+Ctrl+R opens a dialog that allows you toswiftly open an editor on any file in the workspace.
2. Open Declaration (F3) Use F3 to navigate to the declaration of the selected identifier.
3. Backward History (Alt+Left) Often, when you navigate to a declaration you want togo back to where you came from; just press Alt+Left.
4. Content Assist (Ctrl+Space) With content assist you can really speed up codingVHDL. Just press Ctrl+Space to get a suggestion of possible autocompletes inthe current context.
5. Go to next marker (Shift+.) Does your file contain warnings or errors? Quickly nav-igate to the next problem by pressing Shift+. (Shift+, jumps to the previousproblem).
6. Quick Fix (Ctrl+1) To fix problems even quicker, navigate to the problem with the pre-vious shortcut. Press Ctrl+1 to activate the quickfix, select the fix with the UP orDOWN keys and execute the quickfix with Enter.
7. Go to Line (Ctrl+L) You can directly jump to a certain line with this shortcut. You candisplay the line numbers by right-clicking on on the gray bar on the left side of theeditor view (‘the gutter’) and clicking on Show Line Numbers.
8. Search references (Shift+Ctrl+G) To search for all occurrences of a given identifier,just select the identifier and press Shift+Ctrl+G. The search view is displayed,with a match for each occurrence (possibly in multiple files).
9. Rename - Refactoring (Shift+Alt+R) Once you get used to the rename refactoringyou will be using it all the time. Use Shift+Alt+R to run it even quicker.
1 A cheat sheet with all shortcuts on one page is available on Sigasi’s website.
35
Sigasi HDT User Manual
10. Toggle Block Selection (Shift+Alt+A) Switch between regular and block selectionmode.
11. Quick Access (Ctrl+3) Ctrl+3 is the shortcut to use, when you forgot the shortcutyou actually need. With Quick Access you can quickly find open editors, availableperspectives, views, preferences, wizards, commands, etc. Simply start typing thename of the item you wish to invoke.
13.2 Keyboard shortcut reference
13.2.1 Basic editing
Description Keyboard shortcutDelete DeleteCopy Ctrl+C, Ctrl+InsertPaste Ctrl+V, Shift+InsertCut Ctrl+X, Shift+DeleteUndo Ctrl+ZRedo Ctrl+YSelect All Ctrl+AToggle Block Selection Shift+Alt+A
13.2.2 Quickfixes
Description Keyboard shortcutQuick Fix Ctrl+1
13.2.3 Autocompletion
Description Keyboard shortcutContent Assist Ctrl+Space
13.2.4 Basic Search
Description Keyboard shortcutFind and Replace Ctrl+FFind Next Ctrl+KFind Previous Shift+Ctrl+KIncremental Find Ctrl+JIncremental Find Reverse Shift+Ctrl+J
36 Chapter 13. Keyboard shortcuts
Sigasi HDT User Manual
13.2.5 Files
Description Keyboard shortcutPrint Ctrl+PNew Ctrl+NRename F2Close All Shift+Ctrl+F4, Shift+Ctrl+WRefresh F5Close Ctrl+F4, Ctrl+WProperties Alt+EnterSave Ctrl+SNew menu Shift+Alt+NSave All Shift+Ctrl+S
13.2.6 Navigation
Description Keyboard shortcutLast Edit Location Ctrl+QOpen Resource Shift+Ctrl+RBackward History Alt+LeftShow In... Shift+Alt+WGo to Line Ctrl+LPrevious Ctrl+,Next Ctrl+.Collapse All Shift+Ctrl+Numpad_DivideForward History Alt+Right
13.2.7 VHDL specific
Description Keyboard shortcutSearch references Shift+Ctrl+GRename - Refactoring Shift+Alt+RComment Shift+Ctrl+/Uncomment Shift+Ctrl+\Open Declaration F3Open matching entity Shift+F3Rebuild Project F6Align Shift+Ctrl+AIndent Ctrl+IGo to next problem Shift+.Go to previous problem Shift+,
13.2.8 Advanced search
Description Keyboard shortcutFind Text in Workspace Ctrl+Alt+GOpen Search Dialog Ctrl+HPrevious Word Ctrl+Left
13.2. Keyboard shortcut reference 37
Sigasi HDT User Manual
13.2.9 Advanced editing
Description Keyboard shortcutInsert Line Above Current Line Shift+Ctrl+EnterScroll Line Down Ctrl+DownDelete Next Word Ctrl+DeleteText Start Ctrl+HomeToggle Overwrite InsertInsert Line Below Current Line Shift+EnterDelete Previous Word Ctrl+BackspaceDelete Line Ctrl+DCopy Lines Ctrl+Alt+DownDuplicate Lines Ctrl+Alt+UpMove Lines Down Alt+DownDelete to End of Line Shift+Ctrl+DeleteSelect Next Word Shift+Ctrl+RightScroll Line Up Ctrl+UpSelect Line End Shift+EndMove Lines Up Alt+UpJoin Lines Ctrl+Alt+JTo Upper Case Shift+Ctrl+XSelect Line Start Shift+HomeTo Lower Case Shift+Ctrl+YSelect Previous Word Shift+Ctrl+LeftNext Word Ctrl+RightText End Ctrl+EndLine Start HomeLine End End
13.2.10 Views
Description Keyboard shortcutMaximize Active View or Editor Ctrl+MNext Editor Ctrl+F6Next View Ctrl+F7Show View Menu Ctrl+F10Show Key Assist Shift+Ctrl+LShow System Menu Alt+-Show Ruler Context Menu Ctrl+F10Previous Editor Shift+Ctrl+F6Activate Editor F12Switch to Editor Shift+Ctrl+EPrevious View Shift+Ctrl+F7Quick Access Ctrl+3Quick Switch Editor Ctrl+E
38 Chapter 13. Keyboard shortcuts
INDEX
AAltera
library, 11associations
refactoring, 21autocomplete
component, 20instantiation, 20
autocompletion, 18
Ccomponent
autocomplete, 20connect instance
refactoring, 21
Eediting, 14encapsulate
refactoring, 21external tools, 22
Ggenerics
refactoring, 21
IIEEE
library, 9import
project, 6installation
Linux, 5Mac OS X, 5Windows, 5
instantiationautocomplete, 20
interfacerefactoring, 20
Kkeyboard
shortcuts, 34
Llibrary
Altera, 11IEEE, 9std, 9Xilinx, 11
linting, 17Linux
installation, 5
MMac OS X
installation, 5makefile, 28
Nnavigation, 14
Pports
refactoring, 21project, 6
import, 6setup, 6
Qquickfix, 18
Rrefactoring, 20
associations, 21connect instance, 21encapsulate, 21generics, 21interface, 20ports, 21rename, 22
39
Sigasi HDT User Manual
renamerefactoring, 22
Ssetup
project, 6shortcuts
keyboard, 34single : preferences, 29std
library, 9
Ttroubleshooting
FAQ, 31
Uupdates, 5
Vviews, 13
WWindows
installation, 5
XXilinx
library, 11
40 Index
top related