On Wed, 09 Aug 2000 11:07:20 -0700, Kevin Cameron x3251
Quote:
>Religon aside, there are some fundamental differences between Verilog &
>VHDL:
>1. Bidirectional devices
> Verilog supports bidirectional signal flow in primitives, VHDL does
> not support it at all.
> => You can't do transistor-level (CMOS) stuff easily in VHDL.
>2. Signal Resolution
> Resolution in Verilog is flat, and in VHDL is hierarchical. VHDL
> additionally allows port-bound signal conversion.
> => Signals in VHDL do not (in general) behave the same as physical
> wires.
>3. User defined types
> Not supported in Verlog.
>My opinion is that VHDL is Good/OK as an abstract simulation language (which
>you can use with Synthesis etc.) but near useless as a hardware (implementation)
>verification tool. So if you need to do the latter, you may want to stick with
>Verilog throught your design flow.
>Items 1 & 2 above become more of a problem with VHDL-AMS.
>Kev.
There are some fundamental differences, and some surprising
similarities. If you don't mind me saying so, your list above doesn't
do justice to either. Point (1) is relevant only to a (very) small
number of users, and point (2), as far as I can see, has no practical
significance. I don't want to get involved in a VHDL/Verilog flame,
and I want to do this in 10 minutes, rather than several hours, but
you should also consider, among many other things:
1) Scheduling is fundamentally different. The practical effect of
this is that Verilog sims should be faster, but can suffer from
non-determinism.
2) Structural hierarchy is a lot more flexible in VHDL, via the
use of entity/architecture pairs, and configurations. It's easier to
manage designs using packages and libraries.
3) There is no fundamental difference in what can be synthesised
between the 2 languages, contrary to frequent statements here. Many of
the useful extra syntax features of VHDL (see (11)) are also
synthesisable. Both VHDL and Verilog have synthesis subsets.
4) VHDL is much more strongly typed than Verilog; scope is
rigourously defined; you have to declare just about everything before
you use it; and so on. Some argue that this is a bad thing; others
that it's essential. VHDL's types are also extensible, through
enumerated types. This is both useful and synthesisable.
5) VHDL is more verbose than Verilog. Sometimes there's a good
reason for this (see (2) and (4) above); sometimes there isn't.
Whether this is a significant problem is debatable.
6) VHDL's and Verilog's antecedents are Ada and C, respectively.
This makes some of Verilog familiar to most engineers. However,
contrary to popular belief, there is very little direct similarity
between Verilog and C.
7) VHDL doesn't have system tasks or compiler directives. The
system tasks have to be implemented through explicit coding, use of
libraries, or through a PLI. Compiler directives require an external
preprocessor.
8) VHDL doesn't have a standard PLI. Sim vendors have their own
PLIs.
9) VHDL doesn't make a distinction between nets and registers; it
has signals instead. The confusion between blocking and non-blocking
assignments is avoided for a number of reasons, including tighter
scoping, and more rigorous scheduling.
10) It's easier to parameterise VHDL designs.
11) VHDL has a richer syntax; examples that come to mind are
generates, conditional and selected signal assignments,
multi-dimensional arrays, more usable functions and procedures/tasks,
easier initialisation, ANSI-C style declarations, attributes,
enumerated types. These are all synthesisable.
12) VHDL has nothing equivalent to a fork-join, or block
disabling.
13) Some ASIC vendors may not let you use VHDL. This is a
significant problem for VHDL, but can generally be got around, if only
by generating Verilog gate-level netlists.
14) Verilog 2000 will fix some of the more obvious syntax
omissions. There is also an updated VHDL on the way, but it won't be
soon.
15) You should be able to produce a simple design quicker if
you're learning Verilog. However, the total area under the learning
curve is much the same for both languages.
16) In short, VHDL is much more rigorous as a computer language,
is better defined, and provides a more complete single-language
simulation and synthesis solution. The price you pay is more
verbosity, a steeper learning curve, possibly slower simulation, and
possible marginalisation in some parts of the world. You're more
likely to get a job in Europe with VHDL, and in the US with Verilog.
Evan