Recommend Reading for FPGAs and VHDL?
George Holland asks: "After designing several projects around PLD-based programmable logic, I decided to buy a FPGA development board (the Spartan-IIE based XSA-200) to experiment with something more capable. I'd like to find some good books on VHDL and FPGAs in general, but there are many to choose from. Some are aimed at beginners (I have a solid background in both low and high level programming languages and digital electronics), others gloss over the low-level details of an FPGA (covering RTL only, skipping floor-planning) assuming the tools with synthesize an optimal design with no manual tweaking. Trying to find something that fits in the middle is what I'm after. What books do Slashdot readers suggest? Ideally something that covers the WebPACK toolset from Xilinx or the Spartan-IIE would be best as that's what I'm using."
I used "VHDL" by Douglas Perry, McGraw Hill, 2nd edition. I see its now in 4th edition, so it seems to have some staying power. Its not tied to a particular development environment, which is bad when you are trying to get over the hump as a beginner, but good as a general tool to learn VHDL.
http://www.ashenden.com.au/designers-guide/DG.html
This is a link to the VHDL Designer's Guide by Ashenden (from Adelaide if I remember correctly). Some of the hardware people I have worked with used it and considered it to be the bible. From memory you can find a pre-release downloadable as a PDF somewhere, or go and buy the book. It was expensive, but well worth it.
Another book to get hold of is one of the early student manuals that came with the Xilinx Foundation 1.5 tools. It was a beginner's introduction to the Foundation suite but it had a lot of useful snippets that helped me even through more advanced work in recent versions of the Xilinx ISE software. You should be able to find these in a university library if they have an electronic engineering course.
I drink to make other people interesting!
Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project. Basically, any time you need something that can handle as many inputs as you want to throw at it simultaneously (as long as you design it for that many), and functions in real-time.
Think of digital controllers in microwaves, ovens, printers, USB devices. Or, maybe you want to throw a CPU and a few off-the-shelf bridge controllers onto a tiny board without needing dozens of other components to control the system (if it's a tiny thing with very specific hardware requirements, you can say "screw scalability" and design minimal logic to synchronize and channel your data).
Or, perhaps digital audio technology, or maybe video editors/filters (DSP stuff).
People prototyping their own custom logic chips typically use FPGAs before ordering production components. For example, maybe you're designing some custom 3d video hardware to handle special GL extensions that consumer cards don't have, building a system for process control (meaning, running factory equipment), designing robotics, doing data acquisition (analog-->digital hardware), making a video game system, designing some digital stompboxes for your guitar, or making a digital video filter to eliminate MacroVision so you can play DVDS on an old TV that doesn't have S-Video inputs.
Most of this stuff is unexplored territory for coders and software designers... kind of like how a fashion designer wouldn't know how to build a house.
--TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
I just took an EE course where we used several different Xilinx-based boards. I've put up a load of links and documentation for VHDL and the Xilinx tools here.
The course focused on soft processors, so some of the talk about Microblaze won't apply to you unless you can pony up the $500 for Xilinx's EDK.
Even without the EDK, there are a load of cool things you can do with these FPGAs. Consider this guy's implementation of the original Pac Man hardware on a single chip.
Check out:
Fundamentals of Digital Logic by Brown & Vranesic
Available in both a VHLD and Verilog version for your learning pleasure. Both books ship with a copy of Quartus II from Altera. You can get Altera development kits here if you're looking for something bigger and better than a Spartan-IIe.
Disclaimer: I work with the authors.
A great site I've run across is fpga4fun.com. The guy who runs the site has designed and built several really neat little FPGA prototyping boards, and has some great step-by-step tutorials for doing things like generating video signals, reading optical encoders, using Ethernet, etc. You'll probably be sad you got a Spartan IIE just to play around, since he has a great little Altera board for just $50. However I do have a Spartan IIE from Digilent and the code principles are virtually the same.
I'd also recommend checking out the usenet group comp.arch.fpga . Most folks on there are a helpful bunch.
:-)
Of course, I also wouldn't recommend Xilinx, but I'm biased - I work for their competition
This sig is in Spanish when you're not looking....