V3S – VHDL, Verilog, SystemVerilog for VS v2.0.2

What is V3S?
VВіS is an extension for Microsoft’s most excellent Visual Studio. It enables programmers to use Visual Studio as code editor for VHDL (and Verilog/SystemVerilog) projects. Following the rich feature set of the C# programming language, V3S offers many useful functions for efficiently coding in VHDL (or Verilog/SystemVerilog).

Type less, gain more, refactorize
V3S tightly integrates into Visual Studio and offers all features that one expects from a cutting-edge Integrated Development Environment. Refactorizatoin, code completion/autocomplete, smart indentation, and extended snippets (templates) are only some examples that will bring your coding efficiency to the next level.

Early error detection
Syntactic- and semantic error checks are performed while you are typing, thus allowing you to correct syntactic and most semantic errors on the fly – without the need to incorporate your synthesis tool. You don’t have to switch between applications, therefore saving considerable time.

Efficient navigation
Large HDL projects are not as structured and well-arranged as with object-oriented programming languages. V3S offers many features for quickly navigating the code-base. Simply go to a symbol’s definition with just one keystroke, use the handy navigation bar to jump to different design modules, or find all references for a quick overview of symbol usage.

Quickinfo is your friend
Large projects tend to have many different types, signals and constants. Looking up a types or a constant values will consume an enormous amount of your precious time. V3S provides Quickinfo – just hover the cursor over a symbol. You’ll get a pop-up containing type definitions and default values, automatic number conversion and even simple expression evaluation.

Import existing projects
If you already have existing HDL projects, e.g., for the Altera Quartus or the Xilinx ISE/Vivado Software Suite, you can simply use the New Project Wizard to import your project into Visual Studio. For a quick start, I also offer a Hello World and a Sample Project, both of which can be created with just a few clicks.

Coding Support
Refactorization/Renaming (signals, variables, functions, etc.) across the entire project
Create Testbench Wizard creates VHDL testbenches including top-level files and Modelsim scripts
Find all references of symbols throughout the entire project
Syntax highlighting (keywords, strings, characters, numbers, bitstrings, etc.): VHDL 2008
Semantic highlighting (signals, ports, variables, types, functions, hierarchy/libraries, etc.)
Hierarchy-View shows your design in a hierarchical manner
Library-View shows your project organized with respect to the defined libaries
Type-time naming conventions check
Type-time error checking and highlighting
Context sensitive code completion/autocomplete/intellisense support
Smart indentation
Smart indentation for copy/paste
Tooltips/Quickinfo for all kinds of identifiers, all including their location of declaration:
Signals: Type, default value, range
Types: Full declaration, recursive type resolving
Constants/Generics: Type, value
Ports: Type, default value, range, attributes (input, output, buffer, etc.)
Enumeration items: Parent type, full type declaration
Numbers/Bitstrings/etc: Conversion to hex/decimal/binary

Number conversion: hex/decimal/binary/etc.
Expression Evaluator (for contants/default values)
Commenting/Uncommenting selection
Code Snippets for…
Packages (Head + Body)
Synchronous/Asynchronous Processes
Case Statement (case … when)

Code folding/Outlining: Entities, Architectures, Processes, Functions, Procedures, Packages, Instances, Components, Loops, Generate-Blocks, Blocks, …
All default Visual Studio Code Editing features: Block selection, line duplication, line movement, split screen editing, full screen view, search+replace…
Navigation Support
Find all references of symbols throughout the entire project
Quicksearch dialog for quickly searching for project files and globally defined symbols (entites, packages, etc)
Code folding/Outlining: Entities, Architectures, Processes, Functions, Procedures, Packages, Instances, Components, Loops, Generate-Blocks, Blocks
Navigation Bars support (design units one the one hand, subentities (process, functions, etc.) on the other hand)
Tuple highlighting: Matching braces, if-then-elsif-else-end, process-begin-end, case-when-end, etc.
Goto Declaration for all identifiers where applicable (e.g., components, packages, etc.)
Goto Definition for all identifiers of all types (signals, components, types, enums, constants, etc.)
All default Visual Studio Navigation features: Navigate forward, navigate backward, find, find in files, etc.
Separate V3S main menu entry for quick access to most important features
Project Setup
Sophisticated New Project Wizard
Import from existing Quartus Project
Import from existing Xilinx Project (xise, xpr)
Import from File System
Empty Project
Sample Project
Hello-World Project
Virtual Folders (for additional structure of files outside project directory)
Linked Folders (Link entire folders to your project)
Linked Files
Preferences per file (Content type, notification level, parsing options, etc.)
Code Statistics per file
Add new items: VHDL Library file, VHDL Design Unit file
Editable colors for syntax/semantic highlighting
Configurable naming rules for repective type-time checks
Configurable notification levels for all code checks
Configurable settings for code formatting (indenting, newlines, etc.)
License setup/information
Syntax coloring presets (puristic, normal, colorful, dark theme)
Version information, Online update check
All Visual Studio Preferences affecting code editing and Visual Studio appearance and behavior
Recommended Extensions which work fine in combination with V3S:
Productivity Power Tools (Microsoft, free)
Highlight all occurrences of selected word (Microsoft, free)
All features Visual Studio offers in addition to editing code files (CVS/SVN/GIT support, etc.)
Offline license files (no internet connection required)
Up to four workstations per license

Visual, Studio, Project, project, features, projects, Verilog, files, SystemVerilog, default, offers, highlighting, functions, types, signals, existing, Blocks, entire, Import, checks, Visual, Studio, Project, project, default, projects, features, Verilog, files, SystemVerilog, offers, functions, types, highlighting, Microsoft, Import, signals, entire, Blocks, existing