Sigasi logo

Table Of Contents

Previous topic

Linting and quickfixes

Next topic

Refactoring

Support

Autocompletion

Introduction

Sigasi HDT provides powerful autocompletion capabilities. This means that the tool can help you to complete identifiers and constructs as you are working on the code. Like other tools, the tool provides autocompletion based on the VHDL language. However, it goes much further. It also provides autocompletion based on the design context. It can provide this additional level of intelligence as it knows all objects that have been declared in the design.

Autocompletion interface

Autocompletions may come from different sources, as will be discussed in the following sections. However, the user interface to initiate them is always the same. At any point as you are entering code, you can press CTRL-SPACE and the tool will suggest appropriate autocompletions.

Some autocompletions are templates which require further user input. In such a case, the editor 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. When done, you can press ENTER to return to the normal editing mode. The cursor will be placed at an appropriate position to continue working.

Autocompletion based on the VHDL language

VHDL keywords

As you are typing code, Sigasi HDT can autocomplete any VHDL keyword.

VHDL declaration templates

Sigasi can help you to declare VHDL objects, using autocompletion based on templates. There are templates for the declaration of the following VHDL objects:

  • function
  • procedure
  • 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.

Autocompletion based on the design context

Sigasi HDT uses its knowledge of the design to provide intelligent autocompletions that can boost productivity tremendously.

Identifiers

The tool knows which objects are appropriate and which identifiers are visible at any given point in the code. As you start typing and ask for an autocompletion, it will therefore suggest the appropriate identifiers as autocompletion candidates.

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, and can therefore automate much of the instantiation process. At the point in the code where you normally enter the entity name, you can use autocompletion instead to suggest a list of possible entities. Upon selection, the tool will complete the instantiation with a generic map and a port map with named associations. As an initial suggestion, each actual parameter will have the same name as its formal parameter. Of course, the actual parameter names need to be reviewed and edited by the user. Therefore, the editor will go into template editing mode after the autocompletion.
Instantiating a component
Instantiating a component is similar to instantiating an entity. Actually, all known components will also be listed as autocompletion candidates.
Declaring a component
If you want to use instantiation based on a component (as opposed to direct instantiation) you need to associate an entity with a component. Sigasi HDT can automatically declare a component for an existing entity. At the point where you normally enter the component name, you can use autocompletion instead to show the list of available entities. Upon selection, the tool will automatically complete the component declaration.

As you can see, the autocompletion capabilities in Sigasi HDT greatly reduce the overhead associated with writing structural VHDL.

Copyright © 2008-2011 Sigasi nv - "Sigasi" is a registered trademark of Sigasi nv