About the Product
V3S is the short form of VHDL, Verilog and SystemVerilog Extension for Visual Studio.
It is a new and unique extension for Microsoft's excellent product Visual Studio (VS). Most programmers
might already know (and certainly love) Visual Studio for other programming languages like C#, Visual Basic, or C++. However,
there is no current plug-in or extension which enables VHDL (or Verilog or SystemVerilog) support in Visual Studio. So this
is where V3S kicks in and closes the gap. I want to provide an excellent coding experience, which is as outstanding as the integration
of the C# programming language in Visual Studio. Just download the binaries, a one-month trial
version is already included, and see for yourself: The effectiveness of the well-integrated and feature-rich
development environment will certainly convince you that V3S is the way to go for cutting-edge HDL design.
The following list provides just an overview to the most useful and powerful features of V3S. Please refer to the
full feature-list for a detailed description of all features (including documentation).
- Import existing Altera Quartus projects
- Syntax check / Semantic error checking as you type
- Smart indentation, smart copy/paste
- Syntactic/semantic highlighting
- Record/Protected Type resolution
- Parameter help
- Code completion, auto complete
- Comment/Uncomment code blocks
- Block selection
- Outlining/Code folding
- Library support
- Extended code snippets
- Tuple highlighting
- Testbench wizard
For Your Convenience and Productivity
Why do you need a better IDE anyway? As experienced programmer, you certainly know the answer to this question already. It's all about
your convenience, which in turn increases efficiency and productivity. VHDL is a very text-intense programming language, which has plenty
of more or less useful syntactical characteristics. Compared to object oriented programming languages like C++ or C#, VHDL is far
less structured and expressive. Thus, efficient navigation between design entities (components, packages, functions, etc.), informative
tooltips (signal and type information, etc.), semantic code highlighting (types, signals, ports, libraries, etc.), type-time syntactic and
semantic error checking, automated code generation using snippets, and many, many more, will increase your productivity.
The same is true for Verilog and SystemVerilog. Both languages are quite verbose, and provide plenty of features. Having a sophisticated
IDE eases your coding experience, save a lot of time, and reduces your frustration level to a minimum.
V3S not only boosts you effectivness while implementing new code, it also aids you in understanding and reviewing existing code. As
projects grow larger and larger, a significant amount of time is spent in understanding existing modules and libraries. Those often follow
various different coding and naming convensions (if there are any at all), and interact with each other in rather complex ways. V3S tries to
assist you in any possible way by providing all kinds of useful information about the code at hand. Give it a try right away and convince
yourself - you'll never want to miss it again.
Why not Eclipse, EMACS or Others?
If you ask people "What do you think about Eclipse?", the ususal answer is "Well, it's extremely powerful...". Asking the very
same question about Visual Studio, the usual answer is "It's absolutely awesome! Best IDE ever!". While being powerful is
undoubtedly a desirable property, a programmer needs to be enthusiastic about his favorite Integrated Development Environment (IDE).
But don't get me wrong here: It's not that Eclipse (or Emacs) are bad editors - on the contrary, they are both very good code
editors indeed. However, they sometimes just don't feel as "smooth" as one would like them to be. And the point about editors is that you
have to work with them all day, sometimes even all night, many, many hours in a row. Thus effectiveness, efficiency,
seamless integration, and smoothness are the topmost priorities. Even rare (and probably only minor) inconveniences result in frustration
and annoyance at the end of an exhausting working day. Just image the spacebar of your keyboard not accepting every 100th hit -
you could live with it, but after a week you'd surely just buy a new one.
As you might already know, there are a few other VHDL editors out there. Some plug-ins for Eclipse, the famous VHDL mode of Emacs, but also
"common" editors as Ultra-Edit and Nodepad++ support basic VHDL editing. Last (and in most cases also least), the big FPGA vendors themselves offer
IDEs with VHDL, Verilog and SystemVerilog coding support. As you might have found out the hard way, most of those built-in editors can barely
keep up with general-purpose text editors.
Some products are buggy, unfinished, lack important features, are not maintained any more, or are simply ... garbage.
With V3S I intend to change this depressing situation. I want to offer you a tool which satisfies your expectations, and which you just
enjoy working with.
A former colleague and friend of mine once said "A real computer scientist has to write his own code editor anyway". As I was never really happy with
the existing development tools for VHDL, the only feasible step was to write my own. The decision to create an extension for
Microsoft Visual Studio was easy to make, as I never really liked Emacs or Eclipse - and Visual Studio is just absolutely awesome.
Furthermore, Emacs as well as Eclipse already offer at least basic VHDL support, so writing "just another plugin" didn't seem especially
useful at the time being. So I started implementing a language service for Visual Studio a couple of years ago. Now, in 2013, I am finally
at the edge of releasing the accumulated work of the last couple of years.
I am an experienced HDL developer myself (in particular VHDL), so the features I implemented are all based on practical needs. I have already been using
V3S since sommer 2013 for a variety of different projects, so I know that it does an exceptionally good job already. However, I am well aware
that a product like this is never really finished. There are still tons of features I will implement in future releases. Furthermore, especially in the
early phases after the first release, bugs will pop up eventually - I have absolutely no illusions about that. So there is still enough work to be done
in the future, and I am eager do get it all done.