VHDL and Verilog for Visual Studio

V³S Cheat-Sheet

Play Tutorial Video

Here you find a concise overview to the all features of V³S, including a short description, the accessibility, and the corresponding default Visual Studio Shortcut. This list not only contains V³S specific commands and functions, but also standard features natively supported by Visual Studio which you might find handy (and probably know already).

Verilog support is still limited (refer to   Cheat-Sheet for a list of features). It will be enhanced and extended continuously.

Coding

Feature Description Shortcut vhd vlg
Renaming Allows efficient renaming of signals, variables, functions, entities, etc. F2
Find all references Finds all references of a given identifier in the entire project. Shift+F12
Naming rules check Checks if the symbols (signals, functions, etc) obey the configured naming conventions
Syntax Highlighting Code highlighting according to VHDL 2008 syntax: Keywords, symbols, strings, identifiers, etc.
Semantic Highlighting Code highlighting according to semantic analysis: Types, signals, ports, constants, etc. See   Syntax Highlighting for details!
Type-time Error Checking On-the-fly error checking and highlighting. Output in Visual Studio's Error Output Window.
Code Completion/Autocomplete Context sensitive code completion (for defined signals, types, entites, etc.). Ctrl+Space
List Symbols Shows a list of all defined items (also refer to   Code Completion). Ctrl+J
Block Selection Keyboard Holding Alt+Shift while moving the cursor with the cursor keys uses the very handy block/column-selection mode of Visual Studio. Alt+Shift+Cursors
Block Selection Mouse Pressing Alt while selecting code with the mouse uses the very handy block/column-selection mode. Alt+Mouse
Smart Indentation Can be deactivated temporarily with Shift and permanently in   Preferences. Automatically sets the indent of new code lines according to formatting rules.
Smart Indentation for Paste Can be deactivated temporarily with Shift and permanently in   Preferences. Automatically sets the indent of pasted code according to formatting rules.
Increase Indent Increases the indent of the currently selected code lines. Tab
Decrease Indent Decreases the indent of the currently selected code lines. Shift+Tab
Quickinfo/Tooltip Useful information (e.g., type, default value, location, etc.) of the underlying item are displayed. Ctrl+K+I
Expression Evaluator Simple constant expressions are automatically evaluated and the result is displayed in the tooltip. Selected expressions are evaluated as well.
Number Conversion Numbers, Bitstring, Binary String, etc. are converted to decimal, hex, binary formats and displayed as quickinfo.
Comment Lines Comments the selected lines (line commenting). Ctrl+K+Ctrl+C
Uncomment Lines Uncomments the selected lines (line commenting). Ctrl+K+Ctrl+U
Code Snippets (Expansion) Opens a list of all available Expansion-Code-Snippets (snippets that insert new code). Select one to insert the respective snippet into the source code. Ctrl+K+Ctrl+X
Code Snippets (Surround) Opens a list of all available Surround-Code-Snippets (snippets that surround selected code). Make a text selection, then choose a snippet to surround the selected code with the respective snippet. Ctrl+K+Ctrl+S
Code Snippets Inserts the code snippet with the respective link/shortcut [*]. The following shortcuts are defined:
Expansion Snippets:
  • a+Tab: Architecture
  • ar+Tab: Assert-Report with severity
  • r+Tab: Report with severity
  • const+Tab: Constant
  • c+Tab: Component (lists available entities)
  • ea+Tab: Entity and Architecture
  • e+Tab: Entity
  • fl+Tab: For-Loop
  • fld+Tab: For-Loop (Range: downto)
  • flt+Tab: For-Loop (Range: to)
  • w+Tab: While-Loop
  • f+Tab: Function
  • i+Tab: Instance (lists available entites and components)
  • if+Tab: If-Then statement
  • ife+Tab: If-Then-Else statement
  • ifei+Tab: If-Then-Elsif-Else statement
  • phb+Tab: Package Head and Body
  • ph+Tab: Package Head
  • pb+Tab: Package Body (lists available package heads)
  • p+Tab: Procedure
  • rec+Tab: Record type definition
  • sp+Tab: Synchronous Process (lists possible signals for clock and reset)
  • ssp+Tab: Simple synchronous process (clock, but no reset)
  • ap+Tab: Asynchronous Process
  • cs+Tab: Case Statement (lists signal of enumeration type for state-machine implementation)
  • o+Tab: (others => '0')
  • oo+Tab: (others => '...')
  • sig+Tab: Signal declaration of base types: integer, natural, std_logic, boolean, std_logic_vecotor
  • sigslv+Tab: Signal declaration for std_logic_vector type
  • var+Tab: Variable declaration of base types: integer, natural, std_logic, boolean, std_logic_vecotor
  • varslv+Tab: Variable declaration for std_logic_vector type
  • sl+Tab: std_logic
  • slv+Tab: std_logic_vector()
  • u+Tab: unsigned()
  • s+Tab: signed()
  • tu+Tab: to_unsigned()
  • ts+Tab: to_signed()
Surrounding Snippets (xxx is the selected text):
  • std_logic_vector(xxx)
  • unsigned(xxx)
  • signed(xxx)
  • to_unsigned(xxx)
  • to_signed(xxx)
  • if(xxx)
*+Tab
Code Snippets (Forward) When in snippet insertion mode, use TAB to move to the next field (and probably show the suggestions list). Tab
Code Snippets (Backward) When in snippet insertion mode, use SHIFT+TAB to move to the previous field (and commit the current value for previous, and probably show the suggestions list). Shift+Tab
Line Duplication When nothing is selected, these shortcuts duplicate the current line. Ctrl+C+Ctrl+V
Library View Opens a view which shows the current project's library hierarchy.
Hierarchy View Opens a view which shows the current project's design hierarchy.
Create Testbench Opens a dialog where you can easily create a testbench for an arbitrary entity.

Navigation

Feature Description Shortcut vhd vlg
Quick Search Shows a dialog to quickly search for project files and global symbols Shift+Shift
Find all references Finds all references of a given identifier Shift+F12
Navigate Forward Move forward to an already visited location Ctrl+Shift+-
Navigate Backward Move backward to a previously visited location Ctrl+-
Code Folding Collapse certain code blocks for better overview and navigation efficiency
Navigation Bars Navigate between design units inside a file, and between code blocks inside a design unit Ctrl+F2
Tuple Highlighting Matching of tuples: Brace matching, if-then-elsif-else-end, case-when-end, process-begin-end, etc. matching
Goto Declaration Jumps to the declaration of the current item Ctrl+F12
Goto Definition Jumps to the definition of the current item (if different from its declaration) F12

Project Setup

Feature Description Shortcut vhd vlg
New Project Wizard Starts the V³S New Project Wizard. Within some clicks, you can create an
  • Empty project
  • Sample project
  • "Hello World" project
  • Import an existing Altera Quartus Project
  • Import an existing Xilinx Project (xise, xpr)
Ctrl+Shift+N
Virtual Folders Virtual Folders help to organize your project, especially for files outside the project folder. You can only add files as links into virtual folders.
Linked Folders Linked Folders allow you to link physical folders (using absolute path only!). Upon adding a linked folder, V³S can automatically import all contained files for you.
Add New Item There are two predefined templates: Add new VHDL Code File, and add new VHDL Library File Ctrl+Shift+A
Add Existing Item Opens the dialog for adding exsting items to the project. Use "Add as Link" for files outside the project directory Shift+Alt+A
Link Files You have the option to add files as link to your project only. Choose "Add Existing Item", and click the small arrow next to the "OK"-button, then choose "Add as Link"
Code Statistics per File On the HDL files' property page (right-click file in solution explorer, select "Properties"), there are some basic code statistics. The items are
  • Code lines
  • Comment lines
  • Empty lines
  • Total lines
Project-Wide Statistics On the project's property page (right-click project in solution explorer, select "Properties"), there are some basic code statistics for all files (except IEEE default libraries) of the project. The items are
  • Code lines
  • Comment lines
  • Empty lines
  • Total lines
File Properties Each HDL file has associated file properties specific for V³S. The items are
  • Content type: Defines the type of the respective code file (Verilog, VHDL, Text, ...)
  • Library: Defines the VHDL library to which the file belongs. Default is "work"
  • Notifcation Level: Defines the types of errors which will be displayed in the Error Output Window
  • Parsing Options: Let's you define whether to fully parse the file (which might be slow) or not
Alt+Return

Preferences

Feature Description Shortcut vhd vlg
Custom Syntax Coloring You can define custom colors for all VHDL syntax elements like keywords, symbols, attributes, signals, constants, ... Tools+Options+Environment+Fonts and Colors
Color Presets I have assembled a number of color presets here for your convenience. There is a special preset for users of the dark theme V3S+Preferences+Code Coloring
Notifications Here you can adjust the notification levels for all available code checks V3S+Preferences+Code Checks
Formatting Here you can configure your prefered formatting styles (indenting, newlines, etc.) V3S+Preferences+Code Formatting
Licensing Here you can review and setup your license V3S+Preferences+Licensing
Naming Conventions Here you can import/export your project's naming convention rules V3S+Preferences+Naming Conventions
Version Here you can review your current version and check for updates V3S+Preferences+Version
Basics General V3S settings V3S+Preferences+Basics
Language Basics General Language specific (VHDL/Verilog) V3S settings V3S+Preferences+Basics

Others

Feature Description Shortcut vhd vlg
Productivity Power Tools Productivity Powertools from Microsoft are an excellent and free enhancement for Visual Studio, and they work fine with V³S. I am using them as well, and I wouldn't wanna miss them ever again
Highlight all occurrences of selected word Also from Microsoft, also free, also very, very useful


© 2013 - 2017 by ViDE-Software Contact | Terms | Imprint