Suggestions For Learning FPGA Development At Home?
Doug writes "I've recently been inspired to take up amateur electronics, specifically with FPGAs. I have an understanding of the basics, plus a solid programming background. From my research so far I've concluded that I should start with a simple FPGA development board and a couple of books on Verilog and/or VHDL and go from there. I found this Ask Slashdot discussion on Verilog vs VHDL very useful, but it focuses more on the development language rather than hardware. I'd be very interested in hearing peoples' recommendations for an entry-level kit that is simple, flexible, and affordable (sub-£200), and preferably Linux-friendly, and indeed any other wise words that experienced FPGA developers (professional or amateur) might have for a novice just starting out in the world of circuit design."
Sure, after you learn the way things work and know what you're doing you need to design at a higher level of abstraction, but not when you're brand new to the field. The classes I took that forced me to construct low level logic in painstaking detail, draw Karnaugh maps, and know the difference between Mealy and Moore was invaluable to being able to bypass all that and think at a higher level of abstraction. You have to have a foundation to build on.
I think you miss the point. I'm not saying that he shouldn't learn VHDL and/or Verilog. Just that doing a bit of JHDL can give him some good experience with the way circuits lay out. He can actually see how, say, an adder circuit is constructed. Armed with that knowledge, he can more confidently write VHDL/Verilog code that will translate into the hardware he wants rather than some random circuitry that seems to do the right thing.
The lack of updates is disappointing, but not really a show-stopper. Even if the hardware JHDL supports falls into disuse, the simulation tools will still operate. And that's all one really needs for the learning experience. :-)
Javascript + Nintendo DSi = DSiCade
Actually, FPGAs are much more similar to hardware than they are to traditional software. Even though the configuration is volatile on most SRAM-based FPGAs, the "software" does not describe a set of procedural steps to perform as software does for microprocessors.
Rather, an FPGA configuration (personality), describes how the internal gates, storage elements, and interconnect is switched. This makes a configured FPGA almost indiscernible from an ASIC in function.
An FPGA isn't software loaded to "mimic" the functionality of an IC, it is software loaded to "describe" the functionality of the IC.
This is why VHDL and Verilog aren't strictly software programming languages. Rather, they are hardware description languages. Although they can be executed by software simulators in a fashion similar to software, they really describe hardware either behaviorally (procedurally or event-based) or structurally (netlist).
The AC's comments are valid and noteworthy nonetheless. Just because someone understands OOP and knows 5 software languages doesn't mean hardware hacking will be easy. The skills are related, but proficiency in one does not necessarily imply aptitude for the other.
I recommend two things. First, give up the notion that FPGA development as a hobby can be done for the price you're looking for. Good development boards are a little pricy, but you will frustrate yourself with no end in sight by using a barebones development kit. The best cheap dev kit I've seen yet is the Xilinx Spartan-6 SP601 kit. It includes everything you need to get started, including Xilinx ISE design software. That should set you back about $300. The Spartan-6 is fairly anemic in features and power compared to most other new FPGA's so a careful consideration of your goals should take place before you make a purchase.
Two, get a good FPGA development book. I highly recommend "Designing with FPGAs and CPLDs". It's a really useful primer on programmable logic hardware to those who already are technically literate.
http://books.google.com/books?id=enQq7m800xYC&dq=embedded+FPGA
You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.