Videos

  Overview Video
  Tutorial Video
  Coolest Features Video
  Non-Obvious Features Video
  New in Version 2.0 Video
  New in Version 2.1 Video

V3S Cheat-Sheet

Here you find a complete list of all the features contained in V3S, including a short description, VHDL and Verilog/SystemVerilog support, and the corresponding default Visual Studio Shortcut. This list not only contains V3S specific commands and functions, but also standard features natively supported by Visual Studio which you might find handy.

Coding

Feature Description Default Shortcut vhdl v/sv
Renaming Allows semantically correct 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. Also simple string expressions can be resolved.
Number Conversion Numbers, Bitstring, Binary String, etc. are converted to decimal, hex, binary formats and displayed as quickinfo. Floats are displayed as IEEE single/double precision floating point number.
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)
  • ig+Tab: if-generate statement
  • fg+Tab: for-generate statement
  • cg+Tab: case-generate statement
  • 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.
Parameter Help Opens a tooltip with parameter help for the current function/procedure/component/entity Ctrl+Shift+Space
Code Formatting Formats the document or the selection according to your preferences. An (optional) popup-window is shown where settings can be adjusted on the fly Ctrl+K+Ctrl+F

Navigation

Feature Description Default Shortcut vhdl v/sv
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 (processes, function, entities, classes, methods, records, instances, ...)
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 Default Shortcut vhdl v/sv
New Project Wizard Starts the V3S 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, V3S 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 V3S. The items are
  • Content type: Defines the type of the respective code file (Verilog, SystemVerilog, 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 Default Shortcut vhdl v/sv
Custom Syntax Coloring You can define custom colors for all VHDL syntax elements like keywords, symbols, attributes, signals, constants, ...
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
Notifications Here you can adjust the notification levels for all available code checks
Formatting Here you can configure your prefered formatting styles (indenting, newlines, etc.)
Licensing Here you can review and setup your license
Naming Conventions Here you can import/export your project's naming convention rules
Version Here you can review your current version and check for updates
Basics General V3S settings
Language Basics General Language specific (VHDL/Verilog/SystemVerilog) V3S settings
Edit Templates Allows you to edit snippet, testbench, and new file templates

Others

Feature Description Default Shortcut vhdl v/sv
Productivity Power Tools Productivity Powertools from Microsoft are an excellent and free enhancement for Visual Studio, and they work fine with V3S. I am using them as well, and I wouldn't wanna miss them ever again
Highlight all occurrences Also from Microsoft, also free, also very, very useful