views:

653

answers:

9

Can anyone recommend a good book for learning VHDL? Or failing that, any good resource?

+1  A: 

This is the book I used for Systems Architecture class. It is dirt simple.

http://www.amazon.com/VHDL-Starters-Guide-Sudhakar-Yalamanchili/dp/013519802X/ref=sr_1_31?tag=angelforgeorg-20

Jamie
+2  A: 

A great textbook to start out with is: Fundamentals of Digital Logic with VHDL Design

I remember starting out with this to get a quick overview.

Floetic
+1 - used that book as an undergrad, and actually referenced it several times in grad school. Very handy.
Matt Jordan
Yeah, I've actually had them both as my profs. Brown for a 2nd year digital logic course and Vranesic (Emeritus I think) when Brown would be in conferences around the world :P
Floetic
Great profs and educators!
Floetic
+1  A: 

I like the book called "Circuit Design with VHDL", from Volnei A. Pedroni. It focuses on synthesizable VHDL, that is what you will need to code for real chips, not only for simulation.

jfsantos
+1  A: 

When learning any sort of HDL (Verilog, VHDL...) it is important to keep one thing in mind. It is not software programming and things work in parallel. That being said, I find that the best way to learn any HDL is to learn how to think in hardware and describe the hardware (that's why it is called a hardware description language).

So far, I have rarely seen books that show you how your HDL gets translated into hardware. I've read through one when I was at Synopsys (pages filled with code and schematics) but it was an internal publication. However, even lacking this book, you can still see how your code gets turned into hardware by running it through synthesis on free-software.

The reason that I wish to stress this is because there are many ways to solve a problem. You will only be able to write code that solves it efficiently, from a gate count and timing stand point, if you understand how it gets translated into underlying hardware.

Good luck!

sybreon
+1  A: 

i recommend: Chu, Pong P.: RTL Hardware design using VHDL. John Wiley & Sons Inc., 2006

http://www.amazon.com/RTL-Hardware-Design-Using-VHDL/dp/0471720925/ref=sr_1_1?ie=UTF8&s=books&qid=1240832547&sr=8-1

mensch0815
+3  A: 

The unfortunate problem with VHDL is that there are loads of outdated, poorly styled and outright wrong resources out there; both electronic and in print.

Part of the art of mastering VHDL is knowing how to filter these out. The following is the filtering I did in my previous life as a hardware designer. I hope it is helpful to you.

These are the things you want to read, or own, or download:

  • Book: "The Designer's Guide to VHDL" by Peter J. Ashenden (ISBN 1-55860-270-4). It does not waste your time by telling you to use obsolete or vendor specific libraries; it does not explain VHDL assuming you are a software engineer who wants to know about HDLs; it does not explain VHDL by assuming you are a hardware engineer who wants to know about HDLs. It does not advocate a vendor and its solutions (working with a particular vendor toolchain is a separate issue, and I've found it helpful to keep learning VHDL and vendor-specific separate). What it does do is introduce VHDL from the right perspective: as a language used to describe discrete event systems, from which smart programs can extract something that can end up as being hardware. It also describes what the standard language constructs are, which standards of the language exist, and what are their specific properties. Modern tools are ever more adherent to the standards, so this info is way more useful than a bunch of analogies that some other books (to remain nameless) seem to purport. Buy it, it's worth every cent.

  • The newsgroup comp.lang.vhdl is inhabited by people who are very knowledgeable about modern VHDL and can give you sane advice if you can ask questions well. To be able to do the latter, read the book mentioned above. Wading through numerous VHDL forums is in general a waste of time, as the information content there is generally drowned in noise.

  • Know your tools. Get yourself a PDF of the toolchain you will be using and know it very well. The more, the better. Especially know their limitations. Tools often have idiosyncrasies that you will need to work around or play along with to get things just right. For instance, you will probably want to write the portable behavioral code; except for the parts that are either technology-specific, or are such that your tool happens to synthesize them wrong.

  • Know where to find sane VHDL resources. An example of a sane resource is the Hamburg VHDL archive (at: http://tams-www.informatik.uni-hamburg.de/research/vlsi/vhdl/) I found through using the sampling method that the signal-to-noise ratio on that particular website is pretty high. Use it.

  • A fairly obscure book about hardware synthesis (for the really curious; and written from an academic perspective) is Giovanni de Micheli's "Synthesis and Optimization of Digital Circuits" (http://si2.epfl.ch/~demichel/publications/mcgraw/index.html) which may shed some light on the hardware synthesis methods -- though a substantial body of work has been done to improve the results given there since. You may want to borrow this one from a nearby library and leaf through it.

filmil
+1 for Ashenden's book.
Marty
A: 

Be carefull though things are not always parallel. Sequential assignments are different than combinational assignments.

yan bellavance
A: 
ninly
A: 

I found the Low Carb VHDL Tutorial to be excellent when I was learning VHDL.

Adam Pierce