Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Hardware Hacking Build

Suggestions For Learning FPGA Development At Home? 185

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."
This discussion has been archived. No new comments can be posted.

Suggestions For Learning FPGA Development At Home?

Comments Filter:
  • Xilinx (Score:5, Interesting)

    by hjf ( 703092 ) on Tuesday July 14, 2009 @12:56PM (#28692883) Homepage

    Use Xilinx's FPGA Starter Kit. I bought the old version 5 years ago, and it also came with a CPLD dev kit. The dev tools run on linux too. It was something like $99 IIRC. It's made by Digilent. Last time I checked they had a better board for an extra $50 with an LCD display and 64MB SDRAM.

    Otherwise, check fpga4fun.com . They use a tiny FPGA board, which reminds me of the Arduino: it has everything you need and nothing more.

  • by pem ( 1013437 ) on Tuesday July 14, 2009 @12:58PM (#28692913)
    digilentinc.com

    I use these at work for general-purpose little widgets. They are great for all sorts of control/data collection devices. I think we've bought around 50 or so over the past couple of years.

    Unfortunately, they do not support Linux.

    There is an FPGA programming solution around for this board which does support linux (search for Nexys2 on comp.arch.fpga), but it does not support the data transfer function.

    The data transfer function is very nice (under Windows). digilent supplies a driver and DLL, and I find it very easy to transfer data using Python. I do wish they supported Linux, though -- that's all I use at home.

  • General rule (Score:3, Interesting)

    by Quiet_Desperation ( 858215 ) on Tuesday July 14, 2009 @01:05PM (#28693021)
    VHDL for FPGAs and Verilog for ASICs. This rule applies everywhere except where it doesn't.
  • Disagree on the VHDL (Score:3, Interesting)

    by pem ( 1013437 ) on Tuesday July 14, 2009 @01:06PM (#28693035)
    I think it can be harder for a newbie to get a functioning VHDL design.

    But in particular, I disagree with your reasoning about why to use VHDL vs. Verilog. Obviously, everybody's mileage may vary, but removing all vestiges of familiarity so that everything gets equally hard is not the way I learn.

    The way I learned C was by looking at the assembly language output of the compiler, and you can effectively do the same thing with hardware.

    It's not that hard to see what kind of logic your stuff compiles into -- in fact, you can dump a verilog netlist that shows you exactly how your logic maps to the internal chip elements. At a higher level, you can just look at the resource utilization report to see how "big" your circuit is.

    In terms of the "right" language to learn for other reasons, apparently VHDL is somewhat more popular in Europe, and maybe somewhat more popular among FPGA-only designers, but all the "real" chip companies in the US use Verilog.

  • Re:My Advice (Score:4, Interesting)

    by SSpade ( 549608 ) on Tuesday July 14, 2009 @01:12PM (#28693147) Homepage

    Odd. I have much the same perspective as you, but with VHDL and Verilog reversed. I see Verilog as being slightly closer to hardware and VHDL as a little better matched to architectural modelling. I suspect it depends on the tools and workflow you get used to more than anything intrinsic to either language.

    You can certainly make the "being a software developer" mistake in either language - I don't think that's a reason to choose one over the other, rather it's just something to be very aware of.

  • Re:advice (Score:3, Interesting)

    by Anonymous Coward on Tuesday July 14, 2009 @01:13PM (#28693159)

    One caveat. I find that a lot of folks need to think at a higher logic level than is presented in most digital logic books. I see people constructing multiplexers and decoders and other basic logic structures in painstaking detail when they should be using simpler statements and letting the synthesis tool do the work.

    If ever draw a Karnaugh map while coding VHDL, you're doing it wrong. If you are worrying about whether to use a Mealy or Moore state machine, you're doing it wrong.

  • Re:My Advice (Score:5, Interesting)

    by negro_monolito ( 1172543 ) on Tuesday July 14, 2009 @01:14PM (#28693171)

    Go here: http://www.digilentinc.com [digilentinc.com]

    Buy the Nexy2 board for about $70. It has: 8-bit vga, 1 serial p., 8-seg disp., some flash mem., and a bunch of switches and leds. Uses Spartan3e chip, and comes with a nice case and USB programming cable. Programming software (adept) only works in Win., but you can get a linux programmer if needed. The Xilinx ISE or EDK stuff works in either windows or linux. Bonus: gvim works as an editor in ISE :)

    It basically comes with everything you need and should keep you occupied for several months; it's what we use at my university to introduce students to FPGAs in the lab. Feel free to contact me for more info.

  • by blind biker ( 1066130 ) on Tuesday July 14, 2009 @01:25PM (#28693331) Journal

    Well, since most have already suggested the devkits of their choice (of which I have personally used at least a few), and which you could have come up with a Google search... I thought I'd rather advise on an excellent book (and which excellent cromulance you would not have been able to find with Google that easily): "VHDL Answers to Frequently Asked Questions" by Ben Cohen. Even though it has "FAQ" in the title, this books is actually an excellently structured textbook on VHDL. In fact, it's probably THE best book on VHDL for beginners and advanced beginners.

  • by jdb2 ( 800046 ) * on Tuesday July 14, 2009 @01:29PM (#28693399) Journal
    I would recommend a board made by Digilent [digilentinc.com] as they seem to have the greatest selection of add-ons and features plus their boards are high quality from my experience. As for the FPGA, I always recommend Xilinx because of the availability of free development tools, Linux support ( I currently have their WebPACK ISE running under Kubuntu 9.04 ) and the general superiority of their products, especially for projects that involve high speeds, a large number of gates and/or flip-flops eg. a microprocessor and even low power -- Xilinx' weakness has always been their relatively high standby/leakage current compared to other vendors, but they've significantly improved upon that with the Spartan-3A and the just released Spartan 6 chips.

    As a Spartan 6 dev board is going to be expensive ( Xilinx' Spartan-6 FPGA SP601 Evaluation Kit is $295 and AFAIK it's the only entry level board currently available for that chip ) right now, I would recommend a Spartan 3A board. Specifically I would recommend Xilinx' Spartan-3A Starter Kit [xilinx.com] as it has the right amount of features for the price ( $189 ) and it's made by Digilent although if you're on a *really* tight budget you can get kits based off of this chip for as low as $49 [xilinx.com]

    jdb2
  • Re:advice (Score:3, Interesting)

    by QuantumRiff ( 120817 ) on Tuesday July 14, 2009 @02:07PM (#28693935)

    Which is funny, since pretty much every Chip design package ran only on big iron UNIX back in the day, and companies had to re-write their software for NT4, because business was screaming for it.. NT4 was a fraction the price for OS/hardware as big UNIX, Now, with linux being even cheaper, they want the UNIX like software again.. Ahh, the days of a HPUX workstation and NT4 machine on every desk...

  • Re:advice (Score:2, Interesting)

    by Anonymous Coward on Tuesday July 14, 2009 @02:55PM (#28694567)

    True - if you're manually simplifying every operation you're doing things wrong, but there is still great value in understanding what exactly the tools you are using are going to do. The lower the level of the system you're working with, the better your understanding of low level concepts must be in order to effectively utilize said system. I once met a student who outright refused to use the = operator in always blocks because he asserted that the tool would just recognize that he really just needed an =. I showed him how the design had been routed - it was an ugly mess with HUGE delays!

    My suggestion for learning FPGA design would be to first gain a firm grasp of basic binary arithmetic. For free tools, check out the digital systems courses at MIT's courseware site - the recorded lectures and associated notes provide a more than adequate coverage of these fundamental concepts. Atanua is a pretty handy tool that lets you play with very basic logic circuits without worrying about wiring up a proto board (http://atanua.org/). Once you feel comfortable with that, Xilinx provides free tools for Mac, Win2K+, and linux that includes a nice IDE. Digilent was the manufacturer of the board I used in school (the Spartan 3E 500K gate model). I believe they have a UK distributor, and I know they do international shipping.

    If you aim to use Verilog or VHDL for programming your FPGA, become familiar with how to build common pieces of logic such as gates, latches, and basic logic. Opencores has many more compilcated examples for everything from an LED controller to 8088 clones.

  • by julesh ( 229690 ) on Tuesday July 14, 2009 @03:23PM (#28694895)

    Yep. As a newbie a couple of years back I played around with both Altera and Xilinx's software, and found Altera's much more friendly, so I'm now an Altera-all-the-way kind of guy.

    That said, Altera development boards can be a bit pricier than their Xilinx equivalents, mainly because they're harder to find (I don't know why, but perhaps Altera attracts a more advanced designer who doesn't need starter kits, etc, while Xilinx tends to attract the newbies?). That said, this board [digikey.co.uk] for around half the poster's budget limit boasts a last-gen (65nm) FPGA with about 20K logic elements, which will implement moderately complex designs, including a wide variety of microprocessor designs (the smallest I've seen uses less than 300LEs, so theoretically you could get about 70 of them on there...!), many of which can be run at ~50MHz on this hardware.

  • Re:advice (Score:3, Interesting)

    by Austerity Empowers ( 669817 ) on Tuesday July 14, 2009 @03:50PM (#28695179)

    It runs in 32-bit mode, so if you're on 64-bit you'll need to run the linux32 shell to get it to work. The 64-bit edition is presently payware. Honestly the linux version works for me better and faster than the windows version, but if you have multiple targets (particularly that are non-Xilinx) windows may be safer.

  • Re:advice (Score:2, Interesting)

    by gwjgwj ( 727408 ) on Tuesday July 14, 2009 @03:53PM (#28695219) Homepage

    I would also add that VHDL/Verilog are *not* programming languages, in the sense that you are creating programs to compile and run on a system. They are Hardware Description Languages that you use to describe a functional piece of hardware. Thinking about HDL as a programming language will only get you crossed up, especially if you are new to the hardware design world.

    For hardware implementation, I agree. However, they are also simulation languages. In such a case, you compile them and execute on your PC, you can then print messages to the console and even open files.

  • by Drongo14 ( 77786 ) on Tuesday July 14, 2009 @04:35PM (#28695827)

    I especially like Altera's "Nios Embedded Evaluation Kit" (aka the NEEK). It has its own TFT, sound codec, analog video input, ethernet and lots more. It also has a thriving uClinux community and they're working on including MMU support. Plus, you don't need a programming adapter for it - just put your hardware design on an SD card, insert into NEEK, power up, and off you go. Ok, it costs $449, but you can do far more than push a few buttons and let LEDs light up.

What is research but a blind date with knowledge? -- Will Harvey

Working...