Quote:
> Hi, all. I want to say before that I'm new to this world. I plan to go the
> univerity in electrical engineering (after my college), and in the second
> year, they will learn us VHDL. I taught it's was the only language in the
> world to "code devices". Than I found that others lnaguage exist like
> Verilog. I want to learn one of this language before they teach it.
> So I ask you which one is :
> 1) Easier to learn,
Not a very important question. You're question number 2 is probably the
best one. Both aren't too bad to learn. I personally think the underlying
"model" of VHDL is cleaner which will make it easier to understand for a
beginner. For example, in VHDL, a SIGNAL is a wire, plain and simple. In
Verilog, what is the difference between a WIRE and a REG? I'm not talking
about in terms of the language, I'm talking about in terms of the hardware.
If you describe a "combinational" signal with a continuous assignment
statement, that signal is a WIRE. If you describe the exact same
combinational circuit in a different way (with an IF or a CASE for
example), now all of a sudden the signal becomes a REG. This kind of thing
confuses beginners, but you get used to it so don't worry (note: getting
used to it does not mean the same thing as it making sense).
Quote:
> 2) More use in the industry
> (which one I will benefist the most),
Good question. Impossible to answer. It depends on many many things such
as where you work, who you work for and random chance. You're email looks
like Canada so if you plan to live your life in Canada, you should find out
which language is most prevalent there (or if its mixed). The fact that
the ciriculum of your University does not offer Verilog may be a hint. I
think Europe is predominately VHDL. The US is definitely mixed, though
pockets like Silicon Valley are predominately Verilog. Here at IBM we are
very mixed and it varies not only from team to team, but project to
project. This is because we work with teams from all over the world, some
of which are other IBMers in another location and some of which are joint
development projects with other companies. *It really pays to be well
versed in both*. This way you will be marketable at more companies and
more locations. For this reason alone, I would suggest that you spend your
time now to learn Verilog because you will be learning VHDL later in the
university.
Quote:
> 3) What is the advantage and
> inconvenient of both language?
Again, this question is much less relevant than your number 2 (which I said
was impossible to answer, so why am I posting?? :-) ) They are both good.
They are both bad. They both have advantages. They both have
disadvantages. I think a better language can be designed that takes the
good from both of them and corrects or leaves out the bad. The important
thing is that you will probably need both and if you don't need both, the
choice of which one to use will likely not be your choice -- at least not
until you are the lead designer and the customer of your chip doesn't care
about the design language.
Quote:
> P.S: If this can help in your answer, I already have a strong programming
> background in C/C++, so programming it's no obscur to me.
Before learning either VHDL or Verilog, I would strongly advise you to get
a good background in "digital logic design". VHDL and Verilog "look"
somewhat like programming languages but they are not programming languages
at all. Trying to design logic like you would program is disastrous. I've
seen programmer type people try to do it with some very bad results --
"look, the HDL has FOR loops -- Cool!" (I'm not saying FOR loops aren't
appropriate in some instances, but you *really* have to know where). In
fact, I would say that if you don't know logic design, your programming
background may hurt you rather than help you. Chips are not little
computers running software coded in VHDL or Verilog. You need to be able
to visualize the hardware circuits and state machines you are trying to
implement before ever coding a line of HDL.
By the way, how are you planning to learn VHDL or Verilog? You really
won't learn much just by reading a book. So you will need to find some
tools that will actually allow you to work with the language. What you can
get may influence which language you wish to persue for now. You
definitely need a compiler/simulator to try out your designs. You will
need a synthesizer to synthesize your designs into gates. A simulator will
simulate any legal code, but only a subset of the constructs are
synthesizeable. Without a synthesizer you won't know if your code can be
realized on a real FPGA or ASIC and meet some timing goal. So you should
first find out what kind of tools you can get access to, either for free or
on your budget. FPGA tools are probably the best place to start since ASIC
tools are generally much more expensive and require much more setup of the
libraries and such. I don't know of any free tools, but that doesn't mean
they don't exist. Good luck. I hope you found some of this useful.
--
Rich Iachetta
I do not speak for IBM.