Slashdot Mirror


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."

185 comments

  1. Try these modules by Anonymous Coward · · Score: 0

    http://www.opalkelly.com/

    1. Re:Try these modules by John+Miles · · Score: 1

      Opal Kelly modules are clean, well-documented designs, but because of their relatively high cost they're better thought of as embeddable modules rather than as learning platforms. For education and basic home tinkering, you want a cheap well-documented board with lots of peripherals to play with.

      I think the best overall learning platform right now is the Nexys2. You can teach yourself everything from USB interfacing to VHDL/Verilog design for $129, and it's got a lot of switches, lights, ports, and outboard RAM to play with.

      There are also a couple of reasonably priced books written especially for novices learning logic design with the Digilent platforms. $200 will get you both the basic- and advanced-level books from LBE and a Nexys2 to do the exercises. Very hard to beat that combination IMHO. (You can use the Nexys2 with the first book, even though it was written for the lower-end Basys board.)

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    2. Re:Try these modules by cibyr · · Score: 1

      I'll throw in another vote for the Nexys2. It's brilliant value, and you can program it via USB! Don't underestimate the value of that. The USB programming cable for the ML501 board I'm working with at the moment costs more than the Nexys2 board.

      The toolchain is free-as-in-beer, but I've only run it on Windows. I think there is a linux version of ISE, but I don't know about the diligent programming software.

      --
      It's not exactly rocket surgery.
  2. advice by seanadams.com · · Score: 5, Informative

    Unless you are very experienced designing with TTL chips, you won't get far in HDL without first getting good coverage of logic theory. My experience may be a little dated as it was 10 years ago that I started learning programmable logic, but at the time I enjoyed the first edition of Fundamentals of Digital Logic with VHDL Design. Not that logic theory has changed, but newer books might come with better examples or easier to use software. What I liked about that book was that it covered the theory in a very complete way while introducing the vhdl concepts at a manageable pace.

    As far as development tools, they're overwhelmingly Windows based. You may have to run a VM so that you can use the most common tools (eg Xilinx WebPACK) until you're up to speed, then try a linux solution later. There are lots of hardware trainers out there - it's really not that important which one you use initially, although if whatever books you're reading have a recommended one, use that.

    Your experience in the software world will help you somewhat, but be prepared for a vastly steeper learning curve than picking up a new programming language. There are not a lot of engineers who go very deep on both the software and hardware/logic sides - if you do you will end up with some valuable skills indeed. good luck!

    1. Re:advice by hjf · · Score: 3, Funny

      Xilinx WebPACK runs on linux natively too.

    2. Re:advice by gregoryb · · Score: 4, Informative

      As far as development tools, they're overwhelmingly Windows based.

      The majority of Xilinx' tools are available in Linux versions. I actually really prefer the Linux versions as using them from command line is far easier under Linux than under Windows (provided you want to script your process instead of using the GUI, probably not as useful for someone just getting started). Also, AFAIK, the larger Xilinx FPGAs require the *nix tools for a guaranteed Map/PAR due to memory limits, etc. You can use the Win32 version, but once utilization gets high enough, the Win32 versions may not be able to completely PAR the design.

      -gb

    3. Re:advice by Anonymous Coward · · Score: 3, Interesting

      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.

    4. Re:advice by Anonymous Coward · · Score: 4, Insightful

      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.

    5. Re:advice by snakegriffin · · Score: 4, Informative

      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.

    6. Re:advice by gambit3 · · Score: 3, Informative

      I second the recommendation for the FOLD book.
      I used it in college (also about 15 years ago), and I loved it so much I ended up buying an updated version when I ran across it at a Half-Price books recently.

      If you've never done logic design, it will take you from the basics on.

    7. Re:advice by donaggie03 · · Score: 1

      Unless you are using VHDL as a tool to help you learn Karnaugh maps and state machines, as we did in college.

      --
      Three days from now?? Thats tomorrow!! ~Peter Griffin
    8. Re:advice by Anonymous Coward · · Score: 1, Insightful

      I was going to say the same thing, so good on you.

    9. Re:advice by Gerzel · · Score: 0

      What does this have to do with learning how to compete in the Female Pro Golfer's Association?

    10. Re:advice by QuantumRiff · · Score: 2, Interesting

      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...

      --

      What are we going to do tonight Brain?
    11. Re:advice by Anonymous Coward · · Score: 0

      When you start VHDL you will feel like you are programming because you're using a highly syntaxed language in a text editor.

      VHDL/Verilog is not a programming language! It's a hardware description language. I've seen so many people stumble on this point. You're not coding an algorithm, you're coding hardware to perform some algorithm.

    12. Re:advice by Anonymous Coward · · Score: 2, Interesting

      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.

    13. Re:advice by Anonymous Coward · · Score: 0

      Also make sure to read up on the target chip of choice be it Spartan 3, Virtex 4, etc. Understanding your target architecture is even more important that with software. VHDL and Verilog are very low level, like C, and the devil is in the details. It may work but it'll take 2x the space and run @ 1/2 the MHz.

    14. Re:advice by Anonymous Coward · · Score: 0

      Also remember that hardware /= software. Algorithms are often expressed very differently than their software equivalent. A good example to look at would be something like a median filter (search for xapp953 on xilinx.com). If you can understand why it's designed that way you'll be well on your way to understanding hardware design.

    15. Re:advice by Anonymous Coward · · Score: 1, Informative

      The last time I tried Xilinx, it was buggy as hell even on Windows (their main native development platform.) Nothing is more frustrating than to have a corrupted project file that builds just fine until you try to feed it a test waveform and you find for some reason your project fails to simulate at all. You start over again and rebuild your project exactly the same way and it (maybe) works the second (or third) time. I hope they fixed a lot of the problems. Xilinx was NOT ready for prime time when I tried it a year or two ago.

    16. Re:advice by Austerity+Empowers · · Score: 2, Interesting

      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.

    17. Re:advice by gwjgwj · · Score: 2, Interesting

      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.

    18. Re:advice by Anonymous Coward · · Score: 0

      Answer(without screwing around)

      Here is where you get the board

      http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,400&Cat=10

      Many universities use these boards. They are very common and work very well.

      Xilinx webpack ise is free and works with windows and linux.

      VHDL and Verilog both SUCK. There are no good language options anywhere for FPGAs yet. (There are many reasons behind this which are both technical and bureaucratic and go beyond the scope of this comment) Since the language suck and can't be formatted well don't worry about the code being 'clean and easy'...
      I specialize in VHDL and here is some VHDL advice. The language is HUGE, but the only things you care about are case statements if statements and when/else statements. Some of what you write will be synchronous, some will not. If it is in an if block with the "risingedge" condition, its synchronous, otherwise it is not. Get an account on opencores and look at what people do there, and look at the examples that come with the board. Don't bother buying a book.

      I would try and get a usb programmer instead of a parallel programmer if you are using linux. I understand usb programmers work much better.

      If you are interested in a more complete solution for home embedded projects, I would recommend looked up the armadeus. http://www.armadeus.com/english/index.html
      The armadeus is the best "all in one" embedded solution for almost any embedded project. Its cheap too.

    19. Re:advice by Anonymous Coward · · Score: 0

      VHDL and Verilog *are* programming languages, which can be compiled and run (normally as simulations of digital logic circuits), albeit with different semantics to "conventional" programming languages. A limited subset of these languages can be used to describe synthesizable digital logic designs.

    20. Re:advice by Bakkster · · Score: 1

      Correct, but the only time you should be creating non-implementable HDL code is to produce test cases for your implementable HDL cases, or placeholder modules that will be replaced with implementable code.

      --
      Write your representatives! Repeal the 2nd Law of Thermodynamics!
    21. Re:advice by Anonymous Coward · · Score: 0

      If you choose for VHDL, I recommend you consider using Sigasi Hardware Development Toolkit. Its online parser and context-based autocompletion help you up to speed in no time. It enables you to focus on FPGA design instead of having to struggle with syntax all the time.

    22. Re:advice by morgauxo · · Score: 2, Insightful

      On the plus side, at least this time they can dual boot and/or use virtualization. No need for two boxes.

    23. Re:advice by Anonymous Coward · · Score: 2, Informative

      Other way around, at least with version 11.1, WebPack only supports 32-bit Windows but supports 32 and 64 bit Linux (though Xilinx only supports RHEL and SUSE Enterprise). I actually just purchased a USB Dongle node locked license only to find out after the fact that they only support the USB Dongle on Windows.

    24. Re:advice by SlashWombat · · Score: 1

      VHDL/Verilog is not a programming language! It's a hardware description language.

      While coding in a HDL is strictly not programming, it may as well be! The simulators allow you to functionally verify the design on your own PC, the state machines produced in HDL look identical to the version you might have written in another language ... The only difference is that overall the description is that for parallel processing. (In fact, there are translators that take C code and convert it to run on FPGA's ...

      VHDL looks very much like a subset of ADA ... would you deny that ADA is not a programming language?

    25. Re:advice by Bakkster · · Score: 1

      The difference is one of purpose. He doesn't just want to learn how to write a program in HDL (although it is helpful for verifying designs, certainly), he wants to learn how to design on an FPGA. This means that he needs to be focusing on hardware implementations of logic and what that requires him to do in Verilog/VHDL, rather than using the same logic he would use in another language and use the different syntax.

      Sure, it may be possible to take a program in C and turn it into hardware, but it will never be as fast as designing the proper hardware logic. What is the purpose of turning fast software into slow hardware? It's not worth learning if you don't do it right.

      --
      Write your representatives! Repeal the 2nd Law of Thermodynamics!
    26. Re:advice by Anonymous Coward · · Score: 0

      That's right, you have remember that everything always runs in parallel and you have to pound it into your head that you need special constructs to get things to happen sequentially.

    27. Re:advice by Austerity+Empowers · · Score: 1

      It runs fine on ubuntu, perhaps 64-bit linux is ok now, haven't tried in a little while.

    28. Re:advice by cerberusss · · Score: 1

      The sysadmins at all companies I worked for, didn't like virtualization. They all let me choose either a Windows or a Linux installation, apparently because dualbooting makes updating difficult. I.e. with Linux' uptime, it is possible that the Windows installation will not get booted in months to come.

      --
      8 of 13 people found this answer helpful. Did you?
  3. I've asked some "high profile" hobbyists the same. by Anonymous Coward · · Score: 0

    The answer keeps coming back Altera.

  4. Digilent by Anonymous Coward · · Score: 0

    In our lab sessions we teach the students with boards of Digilent Inc. and we're very happy of them, we also have some in house dev. boards. (do I get my discount bonus know? :)

  5. My Advice by AKAImBatman · · Score: 5, Informative

    Hardware: I highly recommend the Spartan Starter Kits. They're dirt cheap, well supported by the industry, and come with a good toolkit. There's not much more you need to know other than you'll probably want a serial cable in addition to the JTAG cable the kit ships with.

    I'll grant you that the fabric isn't very large by today's standards, but it's still enough space to learn about the hardware. By the time you outgrow the fabric, you should have a good idea of what size hardware you want. In fact, your next board may even be a custom design based on a bus like wishbone. ;-)

    Software: The Xilinx stuff (pronounced "Zy-Links") comes with a full toolkit for VHDL/Verilog development including an IDE, place and route tools, and software to reconfigure the FPGA. It's all quite slick and easy for a beginner to use.

    Language: The most common route taken by new hardware developers is to learn Verilog. They do this because it's similar to C and that makes them comfortable. THIS IS A BAD IDEA. I can't count how many hardware designers swear up a storm when they see a Verilog project with loops and other software constructs stuck into them. See, the comfort and familarity of C makes new hardware developers forget that the hardware is a fixed layout. There is no for loops or control logic as you think of it. It all ends up flattening to hardware. If you write regular software constructs, you'll end up with the least efficient circuit possible.

    From this perspective, learning VHDL is better because you won't have that comfort and familiarity that might tempt you into creating poor circuits.

    I actually recommend doing some JHDL code for a while. It's lower level than VHDL, but that's a good thing. You have to think about every wire connection and how it all links up. When you're done, you can easily step through your circuit and see how it plays out in hardware. Even better, you learn how to properly use software constructs like loops to create a large number of static hardware objects. This will make your code better without falling in the trap of trying to write software.

    That's my 2 cents anyway. Good luck! :-)

    1. Re:My Advice by Anonymous Coward · · Score: 5, Informative

      I'm a hardware and software designer and while VHDL and Verilog are different, I would say it doesn't really matter which you start with (VHDL makes you be more careful in your design, Verilog is more often used in industry).

      I was one of the developers on JHDL and I would stick with the standard tools. Trying to explain to a potential employer why you know JHDL and not verilog or VHDL is kind of depressing. JHDL's last release was 2 years ago and I'm not sure if it is an active project any more. That said, the interaction with the simulation of circuits provides a nice graphical interface if that is something you are interested in.

      The Xilinx Spartans are great (and cheap) to start on and there are a bunch of people using their WebPack software with Linux (http://lug.wsu.edu/node/383)

    2. Re:My Advice by SSpade · · Score: 3, Interesting

      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.

    3. Re:My Advice by negro_monolito · · Score: 5, Interesting

      Go here: http://www.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.

    4. Re:My Advice by AKAImBatman · · Score: 3, Insightful

      Trying to explain to a potential employer why you know JHDL and not verilog or VHDL is kind of depressing. JHDL's last release was 2 years ago and I'm not sure if it is an active project any more.

      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. :-)

    5. Re:My Advice by Anonymous Coward · · Score: 0

      Digilent makes some more nice boards, including what a number of universities use.

      I've found (if I remember correctly) that comparable boards are actually cheaper (especially with academic licensing!).
      http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,400&Cat=10

      or a particular board:
      http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,519&Prod=S3BOARD

    6. Re:My Advice by Anonymous Coward · · Score: 2, Informative

      Following up on above:

      I'm not sure what the current conversion rate is, but this is the board that I use in an academic setting:
      http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,453&Prod=XUPV2P ($299.99 USD for academic customers, so you may need to ask a prof to help you out with this). The FPGA is roughly four or five years old now, but the next-generation Virtex-5 XUPV5 board will set you back $750. There are plenty of resources for beginner-to-intermediate designs -- I've seen this board implement two MPEG-4 decoders running simultaneously.

      To answer your question about being *nix-friendly -- I've used the Xilinx tools under CentOS/RHEL, Debian/Ubuntu and Solaris with no problems (admittedly, these were the commercial version of the tools but I'm told the WebPack is pretty decent as well). Also, this particular FPGA has a PPC405 embedded into the FPGA fabric, and there are several linux flavors that have been ported to run on it -- so, you can actually run linux on the FPGA itself. What's more linux-friendly than that? :)

      One thing you may wish to keep in mind -- I tell students that for many first-time designs, you should be spending ~90% of your time parked behind the simulator tool, ~5% checking that the synthesis/implementations tools built the circuit you were actually trying to describe, and the rest of the time validating your design on the actual hardware (I've even taken the evil step of withholding FPGA board from people until they can demonstrate their designs have a chance of working through simulation). It's not the most fulfilling approach, but chances are your board will be idle for much of the day while you write or simulate HDL anyways. I believe the Xilinx tools include a stripped-down version of the ModelSIM simulator tool that is useful for simulating smaller designs.

      And I'm not touching the VHDL/Verilog issue with a 10-foot pole except to say:
      - The language is a tool that you use to describe the hardware that you wish to build. I personally avoid the 'features' that are available in one HDL but not the other so that I can easily switch between the two languages if I need to.
      - Writing test-benches is much easier in Verilog from my experience
      - Learn whatever your prospective employer uses! ;)

      Good luck!

    7. Re:My Advice by snaz555 · · Score: 1

      Xilinx software is licensed by subscription that has to be renewed annually. Even WebPack. It's also single seat, so you can't install it on both a desktop and laptop. The license is tied either to the hard drive or PHY MAC. Even though free, it's not clear whether they will grant you more than one 'free' license, and the shrinkwrap EULA isn't stated in advance. For instance, even though highly implausible they would, there's no guarantee they can't extort payment from you at a later time, gratuitously cancel your license, or simply cease their 'free' WebPack program. I personally chose to avoid Xilinx for my uses, in favor of Altera. Not because I dislike Xilinx or anything, but simply because the last thing I wanted is more licensing complexity to deal with.

    8. Re:My Advice by Anonymous Coward · · Score: 0

      That's a really good point.

    9. Re:My Advice by pem · · Score: 2, Informative

      This is probably a bit of a troll, but I'll bite anyway.

      1) Until version 11.1 (earlier this year), Xilinx software was never protected by ANYTHING. (Well, you had to enter a serial number, but the FAE would probably give you one).

      2) Xilinx software never expires -- the 1 year gets you updates, but you can still keep using it after that.

      3) At version 11.1, Xilinx started using FlexLM licensing. While I am not a fan, it has not proved all that difficult. Now, I have to admit that I haven't tried licensing the free Webpack under 11.1 (only the full-up paid-for release), so don't know whether there are issues with multiple machines, but older versions of webpack (such as 9.2, a very good version) work fine on all the currently supported parts, and there are no problems with downloading them to multiple machines.

      So, only with the very latest release, which isn't really necessary for the parts that Webpack currently supports, might you have to worry about licensing in any significant fashion. You write like this has been the case all along, so this leads to the next question:

      4) EVERY TIME I look at altera, the licensing puts me off. Have they significantly changed it? Why do you think it's better? If memory serves, they've been using FlexLM for a very long time (which Xilinx just started to do earlier this year).

    10. Re:My Advice by Man+On+Pink+Corner · · Score: 1

      Seconded - the Nexys2 kicks ass. Best bargain in hardware, anywhere.

      There are a couple of decent books by Richard Haskell that are written especially for users of the Nexys2/Basys boards.

    11. Re:My Advice by Man+On+Pink+Corner · · Score: 2, Insightful

      He wasn't trolling, and Xilinx's move to FlexLM is a big deal. It's why I went with them over Altera in the first place. That reason is now gone.

      With product activation, you have no idea if you'll be able to recover your toolchain several years from now when you need to bring a project out of cold storage. It is not OK to rely on critical software that runs only at the pleasure of its vendor, and I'm just flabbergasted, gobsmacked, and astonished that everybody in the entire technology industry seems to think otherwise.

      10.1 is the last non-protected Webpack edition, and (to their credit) Xilinx has kept it available on their site.

  6. Xilinx by hjf · · Score: 5, Interesting

    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.

    1. Re:Xilinx by Anonymous Coward · · Score: 0

      As a fellow Brit, have a look here: http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,400&Cat=10

      I got the 3E starter board, downloaded webpack and got it up and running. Like you though, I could use a good book to learn from, so far I've been using various websites.

      They ship to the UK, and within about 3 days too! (customs will add on VAT when it gets here, as well as a little something for Royal Mail).

    2. Re:Xilinx by customizedmischief · · Score: 1

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

      I have been playing with the Pluto board from fpga4fun. This is great for little proof of concept projects. It is too limited for big projects, but as a hobbyist, I have found that there is a lot of room to play and learn on the cheapest one before I need an upgrade.

      --
      Oops.
  7. Cheap Xilinx development board by Rythan · · Score: 2, Informative

    I'd suggest Avnet Part # AES-SP3A-EVAL400-G, it's $49, and comes with everything you need for VHDL or Verilog...

  8. I like the Digilent Nexys2 by pem · · Score: 3, Interesting
    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.

    1. Re:I like the Digilent Nexys2 by Ruie · · Score: 1

      Actually, you can program Nexys under Linux - I upload firmware to FX2 chip using fx2_programmer and I program the FPGA and flash using parallel JTAG cable.

    2. Re:I like the Digilent Nexys2 by coarticulation · · Score: 1

      About using the Digilent USB for data transfers from Linux, you might want to check out the project I recently started: http://mhz100q.sourceforge.net/. It includes VHDL and firmware for the Cypress USB chip to support transfers using libusb.

    3. Re:I like the Digilent Nexys2 by pem · · Score: 1

      As I mentioned, there is a project someone (Andy Ross) did to allow programming (without a separate JTAG cable). Just search comp.arch.fpga for linux and nexys2.

      It sounds like maybe you could combine that with what you have done, and get both programming and data transfer. I have no interest in programming the on-board microprocessor -- I just want a communications channel between a Linux host and an FPGA. Digilent provides a good communications channel between Windows and an FPGA, but not Linux.

    4. Re:I like the Digilent Nexys2 by Ruie · · Score: 1

      It sounds like maybe you could combine that with what you have done, and get both programming and data transfer. I have no interest in programming the on-board microprocessor -- I just want a communications channel between a Linux host and an FPGA. Digilent provides a good communications channel between Windows and an FPGA, but not Linux.

      But this is how I communicate with FPGA - I upload custom firmware to FX2 chip (that overwrites Digilent one) and talk to it. This allows you to implement different endpoints, etc.

      I wish Digilent did not use some of the FX2 pins for JTAG - this halved the bandwidth to the chip (FX2 can have a 16bit pipe to external chips, but only 8 bits are connected to FPGA).

    5. Re:I like the Digilent Nexys2 by John+Miles · · Score: 1

      I don't think the 8-bit path between the CY68013 and FPGA is a bottleneck, really. With an IFCLK of 48 MHz, you'd have to be able to shove 48 MBytes/sec through the endpoint to be bus-width limited, and that just isn't going to happen over USB 2.0. You'll have to spin on FIFO-full either way.

      In practice about 32 MBytes/sec is about the best you can count on achieving, although I understand that the GNU Radio guys are pushing 40 MB/sec with some 8051 bus-mastering hacks.

      Seems that most of the speed-constrained designs are moving to Gigabit Ethernet these days, avoiding the problem entirely.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    6. Re:I like the Digilent Nexys2 by pem · · Score: 1

      But you said you need a separate parallel cable for programming the JTAG flash, if I read it right. Andy Ross's project has Fx2 code to do this over USB. That is what I suggested you could combine with your project, to dispense with the need for a separate JTAG cable. Is your code available?

    7. Re:I like the Digilent Nexys2 by Ruie · · Score: 1

      But you said you need a separate parallel cable for programming the JTAG flash, if I read it right. Andy Ross's project has Fx2 code to do this over USB. That is what I suggested you could combine with your project, to dispense with the need for a separate JTAG cable. Is your code available?

      Ahh, interesting suggestion ! I'll take a look at Andy's code when I have a chance. Yes, my code is available if anyone wants it - it is really quite simple, initialize registers and then wait for data. It might be better to add a couple of data transfer endpoints to Andy's code instead.

    8. Re:I like the Digilent Nexys2 by Ruie · · Score: 1

      I don't think the 8-bit path between the CY68013 and FPGA is a bottleneck, really. With an IFCLK of 48 MHz, you'd have to be able to shove 48 MBytes/sec through the endpoint to be bus-width limited, and that just isn't going to happen over USB 2.0. You'll have to spin on FIFO-full either way.

      True, but I was not able to get the FX2's pipe to operate reliably on every edge of IFCLK. This might have to do with the fact that my data transfer FPGA logic is clocked off IFCLK as well, but might be a limitation of the FX2 or board design.

      I agree that Gigabit (or 10G) is the way to go, but do you know of any convenient boards (like Nexys) for that ? Thank you !

    9. Re:I like the Digilent Nexys2 by Andy+Dodd · · Score: 1

      Thanks for the info!

      The lack of Linux support for the Nexys2 was the main thing keeping me from buying one... I think I'm going to order one in the next week. :)

      --
      retrorocket.o not found, launch anyway?
    10. Re:I like the Digilent Nexys2 by John+Miles · · Score: 1

      True, but I was not able to get the FX2's pipe to operate reliably on every edge of IFCLK. This might have to do with the fact that my data transfer FPGA logic is clocked off IFCLK as well, but might be a limitation of the FX2 or board design.

      Clocking the FPGA from the 48 MHz IFCLK is the right thing to do IMHO. That's how my setup's working. Email me offline if you want a code dump; no guarantees that it's optimal or even "correct", but I've run it for several days at a time without any problems.

      You aren't trying to use asynchronous writes, are you? Those can't be pushed beyond about 6 MB/sec from what I could tell.

      Also, what USB driver are you using? CyUSB? If so, make sure you use overlapped reads or you'll miss tons of data.

      I agree that Gigabit (or 10G) is the way to go, but do you know of any convenient boards (like Nexys) for that ? Thank you !

      Unfortunately, no... it seems there are numerous boards with 10/100 Ethernet interfaces but I haven't seen any GigE or better, except for the expensive Virtex-based ones like the NetFPGA board. Digilent had something called the FX12 for awhile that had a Webpack-supported Virtex chip and a GigE port, but it's been discontinued.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
    11. Re:I like the Digilent Nexys2 by Ruie · · Score: 1

      Also, what USB driver are you using? CyUSB? If so, make sure you use overlapped reads or you'll miss tons of data.

      Ahhh, this is good advice ! I am using libusb, but I suspect it has a similar problem. I was doing bulk writes (from the point of view of FX2), I think I hit the limit around 16-20 MB/sec.

      Unfortunately, no... it seems there are numerous boards with 10/100 Ethernet interfaces but I haven't seen any GigE or better, except for the expensive Virtex-based ones like the NetFPGA board. Digilent had something called the FX12 for awhile that had a Webpack-supported Virtex chip and a GigE port, but it's been discontinued.

      In theory, it should be simple enough to make our own board with just the PHY. Of course, the problem is that I don't know of anyone who can comfortably solder BGA chips.

    12. Re:I like the Digilent Nexys2 by John+Miles · · Score: 1

      Of course, the problem is that I don't know of anyone who can comfortably solder BGA chips.

      People have been doing it with toaster ovens (http://www.instructables.com/id/Toaster-Oven-Reflow-Soldering-BGA/ and http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=60&page=). I haven't tried that yet. I have soldered QFNs by laying down some solder paste and blasting the other side of the board with a heat gun, but it's a high-pucker-factor operation. I plan to try the toaster oven hack the next time I need to do that.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  9. Xilinx Spartan 3AN or Altera Cyclone III by nweaver · · Score: 4, Informative

    Xilinx: http://www.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm

    Altera: http://www.altera.com/products/devkits/altera/kit-cyc3-starter.html

    Both are very mainline FPGAs, both have full devkits, references designs, include the tools, linux support on Xilinx at least (not sure on Altera), and are both at your price point.

    --
    Test your net with Netalyzr
    1. Re:Xilinx Spartan 3AN or Altera Cyclone III by Anonymous Coward · · Score: 1, Insightful

      I agree, both of these are very good starting points, and have their own pros/cons. (some Altera tools work just fine on linux, I haven't tried everything, though)

      If you want linux on board, you'll be better off learning the micro IP first, then moving to micro + OS on board.

      The Altera user forums are very helpful, and many of the FAEs hang out on there to answer questions.

      Also, I'll point you towards the Cohen book "VHDL Coding Styles and Methodologies" as a good introduction to VHDL construction, learning poor habits from the beginning will cripple your learning - this is a hardware language, not a software language, and as such, instructions can run in parallel.

    2. Re:Xilinx Spartan 3AN or Altera Cyclone III by Compholio · · Score: 1

      ...
      Both are very mainline FPGAs, both have full devkits, references designs, include the tools, linux support on Xilinx at least (not sure on Altera), and are both at your price point.

      You need a full license from Altera to use their Linux version, if you are at a University you can usually get this license for free.

  10. Digilent boards! by Anonymous Coward · · Score: 0

    Digilent FPGA boards

    http://digilentinc.com/

  11. Virtex ML403 by Anonymous Coward · · Score: 0
    This is a good kit, though slightly more expensive than your price point. It's also a full-up computer system. PowerPC processors can be embedded in the fabric and Xilinx has a large library of example code and projects. The development software may be very expensive - not sure, but their is a limited time evaluation version available.

    Search on google to find the link to the product page.

  12. General rule by Quiet_Desperation · · Score: 2, Interesting

    VHDL for FPGAs and Verilog for ASICs. This rule applies everywhere except where it doesn't.

    1. Re:General rule by pem · · Score: 0, Flamebait

      I think you mean: VHDL for (code which will never live anywhere except inside) FPGAs and Verilog for (all other design, including main-line CPUs from Intel and AMD, and also) ASICs.

    2. Re:General rule by mmkkbb · · Score: 1

      Untrue, the only time I ever worked on an ASIC was a VHDL project.

      --
      -mkb
    3. Re:General rule by Anonymous Coward · · Score: 0

      I worked for an entire semester on the Altera DE2 which worked with both Verilog, and VHDL. We only used Verilog.

    4. Re:General rule by pem · · Score: 1

      Maybe the use of VHDL is the reason you've only ever worked on one ASIC?

    5. Re:General rule by Anonymous Coward · · Score: 0

      believe it is more of a US vs. EU, US traditionally verilog, EU VHDL.

    6. Re:General rule by mmkkbb · · Score: 1

      No, everyone else was using VHDL too. It was an internship.

      --
      -mkb
    7. Re:General rule by Anonymous Coward · · Score: 0

      I've read this elsewhere too, and it's interesting considering VHDL originates from the US DoD.

  13. Disagree on the VHDL by pem · · Score: 3, Interesting
    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.

  14. What I did - and recommend by TehBlahhh · · Score: 5, Informative

    1. Get a (the) Spartan-3 starter board. It's got the 500 variant of the Spartan-3 on it which is big enough to implement even small processors. The board also has some very limited VGA output, and a heap of other things that makes it fun to work with (Serial I/F, etc). The manual for this board is one of the better ones for beginners, as well. I broke my own teeth on this board. It's 149 US schmucks from digilent.

    2. Get Xilinx's free tool suite; its nicely compatible with that board. Free download from the web. Heck, you can even download and play with it without the / any board (but then you don't, of course, get the blinkenlights.) You can however try out and simulate designs before going to FPGA, and thus figure out why the (redacted) it doesn't (redacted) work. Simulations are your main way of verifying your design once you're past 20-odd gates.

    3. Learn the HDL of your choice. Read the books. One warning only: it is NOT a programming language - the entire model in your head about how software works needs to be replaced. Case statements are king. Productivity with HDL's are generally way lower than software; don't be surprised by this.

    4. Do points 1 through 3 in reverse order. Having a shiny 150 schmucker board won't help anything if you still have to spend two weeks grokking HDL's.

    HTH.

    1. Re:What I did - and recommend by DeadCatX2 · · Score: 4, Informative

      I agree entirely with the parent; go with a Xilinx Spartan 3 board. They're cheap, relatively powerful, and Xilinx offers the ISE WebPack for free. It comes with a ton of tools, which you can use to generate cores for doing things like FIR filters and FFTs, or looking at the low-level implementation of your hardware, or programming devices.

      Don't forget to get a JTAG cable. They're very useful for downloading designs into the board. These will cost a little extra, but you might be able to get them with the dev board.

      LEARN TO LOVE THE DOCUMENTATION! This is VERY, VERY important. Xilinx has a TON of documentation and application notes that describe everything about their chips, and I cannot stress how important it is to read as much documentation as possible.

      The docs for XST (the Xilinx synthesizer that takes HLD code and turns it into netlists) describe the design flow, which is important because you need to know how to constrain your design, and what the inputs are for various stages of the design flow and how they connect (synth, translate, map, place, route, downloading into the Flash memory or directly into the FPGA, etc).

      The data sheets for the FPGAs describe the awesome wealth of features, which for Spartan 3-era chips include: dual-port 2k block RAMs, single-cycle 18x18 block multipliers, Digital Clock Managers, Digitally Controlled Impedance, Partial Reconfiguration, and so on. Some other FPGAs (specifically some Virtex models) are even more wild, with on-die "hard processors" surrounded by the FPGA fabric.

      In fact, you should go get the data sheets for every part on the Spartan 3 board - the memory chips, the LCD, all of it. If you're going to design with FPGAs, then datasheets should be as precious to you as the One Ring was to Gollum.

      You should also try to learn what the FPGA fabric looks like. Common logic blocks, slices, flip flops, interconnect, global clock resources, where the DCMs and BRAMs are, the layout of an I/O pad, and so on.

      When it comes to studying, I suggest looking for some tips on coding style for the language you end up choosing. You should also study things like combinatorial and sequential logic, finite state machines, datapath and control. You might even do well to read a book about microprocessor architecture design, because there is a lot of overlap. In fact, some books work together with FPGA dev boards, so you can build your own processor from scratch and add features (make it pipelined, add branch prediction and hazard protection, and so on).

      You could also explore this "soft processor" development by using pre-packaged soft cores, like PicoBlaze or MicroBlaze. You can put all kinds of processors together, even asymmetrically, using smaller ones for small tasks and bigger ones for big tasks. This might help if you're stuck in the software design flow mindset.

      --
      :(){ :|:& };:
    2. Re:What I did - and recommend by kpainter · · Score: 2, Informative

      3. Learn the HDL of your choice. Read the books. One warning only: it is NOT a programming language

      Agreed. Here is another tip that I resisted to the very end but turns out to be very useful. Only change one variable per process. Think of each process roughly like a D Flip-Flop. You need a reset, a clock, data in with logic and an output. You end up with a lot of processes but the chances of having something synthesizable are a whole lot better.

    3. Re:What I did - and recommend by pdbaby · · Score: 1

      I broke my own teeth on this board

      :-P Wow, that's pretty hardcore. I've never even broken a bone

      --
      Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
    4. Re:What I did - and recommend by Anonymous Coward · · Score: 0

      Absolutely right, the Spartan-3 starter board is best buy on the market right now, more bang for your buck than anything Altera.

      And to go with it, buy a copy of "FPGA Prototyping by Verilog Examples, Xilinx Spartan-3 Version" (there's also a VHDL version if you favor VHDL), by Pong P. Chu. It's a great introductory book.

  15. Some tips on development by Anonymous Coward · · Score: 0

    On actual development: never assume any order of two things unless you enforce it. All things happen in a single clock cycle and you can't expect anything to wait for anything else. FPGA's internally work at a much higher rate to simulate at the rate you think you're running which implicitly means that you'll *have* to clock your operations - FPGA's don't do asynchronous (technically they're able but there's no tool that figures it out for you - and you won't want to manually route).

    Oh, and good luck on interfacing with software. Software is *slow*.

    1. Re:Some tips on development by DeadCatX2 · · Score: 1

      The software program flow is inherently sequential, and requires lots of belly-rubbing and head-patting in order to work in parallel.

      The hardware program flow is the exact opposite. It is inherently parallel, with everything happening all the time. The effort required is to force the parallel world to behave in a sequential manner.

      --
      :(){ :|:& };:
  16. Build your own FPGA board :) by hattig · · Score: 1

    Build/Buy yourself a Minimig (with the ARM SD controller) or FPGAArcade.

    At some point you'll want to do decent graphical output as you design your dream 8-bit computer, so these will make a decent base.

  17. VHDL by skeeto · · Score: 2, Informative

    For VHDL itself, I learned that with GHDL (VHDL front-end to gcc, though it hasn't been updated in a year now) and GTKWave for viewing the waves. Throw in make for a build system, and it was all I needed to design and implement (VHDL only, that is) a simple microprocessor.

    That's a start anyway.

  18. Don't buy a board and CtoVerilog.com by fpgaprogrammer · · Score: 2, Informative

    If you're tired of all the VHDL and Verilog nuances, try CtoVerilog.com

    Learn how to use core generator and a simulator before you even buy a board. you only need a board when you actually want to have hardware.

    1. Re:Don't buy a board and CtoVerilog.com by John+Miles · · Score: 4, Informative

      For a newbie, CtoVerilog.com is the mother of all bad ideas. Verilog is not isomorphic to C. Being able to represent a few trivial C loops as Verilog code will not help you learn what's going on under the hood, and it will not help you get the fundamental aspects of your design up and running.

      Also, much of what's done in HDL is gluing other chips together. If you try to use CtoVerilog to make a high-speed USB chip talk to an ADC, the results will be amusing at best. If you find yourself wanting to use C in an HDL design, consider either falling back to a conventional microcontroller or using a software core to run it.

      --
      Dahlmann tightly grips the knife, which he may have no idea how to use, and steps out into the plain.
  19. DLP Design by Sponge+Bath · · Score: 1

    DLP Design (www.dlpdesign.com) has some interesting FPGA modules. Some include a USB port that can be used to program and communicate with the FPGA. This has a USB port and a Spartan 3E for a reasonable price and includes tutorials. Combined with the free Xilinx tools you can do quite a lot with it.

  20. Super-cheap? CPLD development kits by dissipative_struct · · Score: 1

    A cheaper alternative that's well below your price point would be CPLDs (complex programmable logic devices). Much less capable than an FPGA but also much cheaper. Xilinx makes the CoolRunner line, Altera makes the MAX line, and I'm sure there are plenty of others. There's a $63 Xilinx development kit available from digi-key:
    http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=122-1573-ND

    1. Re:Super-cheap? CPLD development kits by Anonymous Coward · · Score: 0
  21. Digilent, ISE, Verilog by Anonymous Coward · · Score: 0

    Get a cheap FPGA board from Digilent (like the BASYS), the free ISE Webpack dev environment from Xilinx, and all the Verilog tutorials you can find on the web.

    That's the way I did it anyway. You can get everything you need to learn for $100

  22. A suggestion for an excellent book by blind+biker · · Score: 2, Interesting

    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.

    --
    "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    1. Re:A suggestion for an excellent book by thoglette · · Score: 1

      If Ben Cohen is VHDLCohen, then +2. Until about half a decade ago I had done chip design and verification for almost two decades and VHDLCohen was one of the few people on the planet I'd run into who understood the language better than myself.

      I'm not normally one to "do the yank" and claim the high ground. But this is one of those cases where I believe I have (or rather had) justification

      --
      -- Butlerian Jihad NOW!
    2. Re:A suggestion for an excellent book by blind+biker · · Score: 1

      If Ben Cohen is VHDLCohen, then +2. Until about half a decade ago I had done chip design and verification for almost two decades and VHDLCohen was one of the few people on the planet I'd run into who understood the language better than myself.

      Yep, that's him :o)
      By the way, from the way you describe yourself, you seem to be an author/researcher in VHDL yourself?

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
  23. Check out old Xilinx Spartan-3 boards by scriber · · Score: 2, Informative

    Now that Xilinx has released new chips, the old ones are pretty cheap. A Spartan-3A evaluation board is less than US $200. These have VGA, PS/2, RS-232, a character LCD, a rotary encoder, LEDs, switches, and a bunch of extra connectors. The main problems are that the DDR2 RAM is *difficult* to use without a proprietary core, and the FPGA doesn't have access to the USB link.

    Digilent Inc sells Spartan-3E boards for less than US $100. These have an easier-to-use DRAM and provide access to the USB port (though I think the official driver is windows-only, there seem to be solutions for using it on Linux).

    Xilinx's ISE runs natively on Linux (RHEL, last time I checked). With a little searching, it was easy to figure out how to get it to work on Ubuntu, including the USB JTAG interface on the eval boards.

    I haven't found a great book for learning this stuff. Pedroni's _Circuit Design with VHDL_ is okay, but it's not particularly deep and doesn't cover the FPGA development process at all. I had to study the Xilinx tutorials to get things working.

    Writing HDL code superficially seems like normal programming, but it's not. Think of it as a way to translate your already-completed design into a form the computer understands. If you don't do the up-front design, it will be hard to fix through refactoring. The simulators just aren't up to the task. Restrict yourself to a single edge of a single clock, and things will be much easier.

    1. Re:Check out old Xilinx Spartan-3 boards by AKAImBatman · · Score: 1

      Now that Xilinx has released new chips, the old ones are pretty cheap.

      The old ones were always cheap. I got my Spartan-3 kit about 5 years ago for $150. That's what the smallest Xilinx kit is selling for now.

      As many people have pointed out, FPGAs are so cheap now that there are plenty of other boards for less. My problem with those boards is that you don't often get the comprehensive devkit you get from Xilinx. As a hobbyist getting started with FPGAs, I found the Spartan kit to be incredible at hand-holding you through the basics of getting into hardware design. Diving into logic theory took care of the rest.

      The board layouts ended up being far more of a challenge. Without an instructor to guide you, getting the correct solutions for circuit voltages was a bit of a challenge. Not to mention selecting the right parts among the 11 billionty parts available. A little persistence can get you through it, though. I just wish I'd stop forgetting how a transistor works. Drives me nuts having to relearn it every time. (Probably because it still boggles me a bit. It makes perfect sense... and then it doesn't. Grrr.... :-P)

  24. Shameless Plug by greatica · · Score: 0

    In most of our EE classes, we purchased some educational boards from Digilent.

    http://www.digilentinc.com/

    I have no frame of reference, but I enjoyed working with them.

  25. Get a Digilent board with a Xilinx FPGA by jdb2 · · Score: 2, Interesting

    I would recommend a board made by Digilent 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 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

    jdb2

  26. Here you go by NP-Incomplete · · Score: 1

    List of FPGA prototyping boards. Xilinx software is free for certain FPGAs. http://www.fpga-faq.com/FPGA_Boards.shtml For books, the only one I know of with an emphasis on synthesis results that includes both VHDL and Verilog is "HDL Chip Design" by Douglas J. Smith. I highly recommend Verilog over VHDL even though I learned VHDL first. Also Xilinx has obscene amounts of documentation on their websitehttp://www.xilinx.com/support/documentation/. Some of their whitepapers and app notes cover general logic design techniques.

  27. Some tips by Anonymous Coward · · Score: 0

    You can purchase a relatively inexpensive board these days (Spartan-3 or an XUPv5). After you've taken the steps to learn the HDL and the concepts, you should try taking a look at a few reference designs online (http://www.xilinx.com/univ/xupv5-lx110t-refdes.htm).

    Also, for learning purposes, if you're willing to, there are some high-quality university courses that you can watch online that walk you through the digital design concepts and the FPGA tool flows. Here's one from a pretty well-known digital design course at UC Berkeley: http://webcast.berkeley.edu/course_details.php?seriesid=1906978206

  28. a n00b's FPGA advice by wangahrah · · Score: 3, Informative

    As many have stated, both Xilinx are Altera can be good routes. Note that while they Altera tools support Linux, their freebie Web edition does not, and the full kit is more than you'd want to spend. Any Xilinx starter kit should be fine for tooling around. I'm not sure your experience level, so I'll go with the basics...

    I'm a young n00b in the FPGA world (two years design experience out of college now), so my experiences are pretty recent. I've got an EE degree, and would say first of all, get a firm grasp of logic design. Do you know what a flip flop actually is? Are you familiar with things like setup and hold time? If not, start out with a lot of reading. Horowitz and Hill's "The Art of Electronics" is a good standard...there's a lot of analog stuff that's "less relevant" to you, but there's a good section on digital design that's a great start.

    One of my young programmer colleagues was looking over some of my code, and seemed to think it was pretty easy...the syntax seemed pretty straightforward, he liked the idea of combinatorial logic being so easy to implement, etc. He started tinkering himself, and VERY quickly realized that it was much more complex than he thought when issues of timing were thrown in. A fundamental knowledge of how signals are propagating through the device is key. It's not just PROGRAMMING, you're programming the actual hardware (or making fancy lookup tables, whatever. Get off my back!).

    As designs get more complicated, you'll need to learn how to use some tools to analyze timings. Altera has Timequest, not sure what Xilinx uses. In college, I managed to get away with the bare minimum of analysis, but I consider this to be a flaw in my education...to do things right, you should do proper timing analysis.

    I have an Altera starter kit I dink around with myself when I'm not at work, and it's definitely worth the time to learn the basics if you're an eternal tinkerer. Finally, the best advice I can give you...don't forget to use VIM as your editor, or you're just setting yourself up for failure.

  29. Re:What MORON keeps tagging articles as HARDHACK? by bconway · · Score: 4, Informative

    Hardhack isn't a tag, it's a category. It stands for Hardware Hacking and is included by default. Try mousing over the story icon.

    --
    Interested in open source engine management for your Subaru?
  30. First things first by Anonymous Coward · · Score: 0

    Step 1 Forget everything you know about programming. Programmable logic and FPGA design deals with programming of events that all happen in parallel. VHDL code does not execute in the order of the code statements, it compiles into a large logic array that executes at the speed of the gate propagation.
    Logic design does not execute like standard programs. Everything in a process occurs at once unless there is a state machine present. If a state machine, present, it all happens on the machine clock. Code should be written with this in mind. Failing to do so will result in unneeded state machines forcing the logic to execute sequentially.
    Step 2: Find something else to do. Designing with VHDL is more of a art form than programming. I deeply respect anyone who can do it well. I have been designing analog and digital circuits for 30 years and VHDL design is stillone of the most challanging tasks I have to do.

  31. a few thoughts by Anonymous Coward · · Score: 0

    Before you even bother buying a board, learn the simulator and learn the synthesizer. Understand the difference between pre- and post-route simulations. Look at the logic diffferent coding constructs give you. Even though you'll be tempted to just synthesize and see if it runs, simulation is important. You get complete control. Write unit tests, make your testbench self checking, and you can run it after every change. Writing models to simulate things you'll be hooking up to is tedious, but also important.

  32. Altera's FPGA software by ronaldg · · Score: 0

    Another FPGA manufacturer is Altera. Their software is called" Quartus II" and is available for free on their website.

    1. Re:Altera's FPGA software by ccvqc · · Score: 1

      Quartus is available for SUSE and RedHat -- not sure about other distros. (I used the Windows version in the courses I teach.)
      My students use the DE1 prototyping kit from Altera -- actually it's made by Terasic in Taiwan. $150 buys you a board with a good-sized set of I/Os, three memory chips, etc.
      As I've said here before, I find Quartus (Altera) easier to work with than ISE (Xilinx). Students can drill down in the schematics and see the gate-level structures, which I never figured out how to do using ISE. I'm sure you can do it, it's just that I found it easier when using Quartus.

    2. Re:Altera's FPGA software by julesh · · Score: 2, Interesting

      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 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.

  33. Re:Mai Advais by AKAImBatman · · Score: 0

    My first reaction to the parent post is, "I'll bet he encoded a cool circuit design into the ASCII of his text!!! COOL!"

    Then I realized he was posting from a cellphone. Probably the same one he had when he learned HDL "10 YEERS AGO". :-P

  34. link by rhythmx · · Score: 2, Informative

    This is a great site with a good bit of introductory information. I implemented their LED flasher tutorials when I was playing with my Xylinx Spartan board. fpga4fun.com

  35. HDL Chip Design by imgod2u · · Score: 1

    As others have said, all the major FPGA vendors provide cheap starter kits and software to go along. They're a great way to start.

    What is essential, though is to understand the concepts of digital design. It's out of print and still expensive (even used) but get yourself a copy of "HDL Chip Design" by Douglas Smith. It is still hands-down the best book on HDL chip design (with every example given in both VHDL and Verilog).

    The important thing to realize is that the language isn't important. You have to start with visualizing the gates, bits and timing windows; then move on to figuring out how to describe those circuits in a language. The Smith book guides you through this learning process.

  36. Re:What MORON keeps tagging articles as HARDHACK? by sukotto · · Score: 1

    Moron? I think it's more likely a new form of trolling.
    It would be interesting to see some enhancements to the tagging. Things like the ability to agree/disagree with tags; viewing who tagged and how agreed/disagreed with each; a way to filter out tags set by people you've foed (unless enough non-foes have agreed); etc

    *shrug* for now, I think your only recourse is to turn them off, or maybe write a little greasemonkey script to remove tags you don't want to see anymore (either through lack of interest or contamination of the term)

    --
    Come play free flash games on Kongregate!
  37. Spartan-3 and Virtex5 by Anonymous Coward · · Score: 0

    The Spartan 3 is a good starter board. This was used in my VHDL class. A simple RISC processor was implemented on this board. The virtex5 board was used in my second Computer Design class. A 8-bit MIPS arch processor was implemented on this with all the normal features, ram, PC, interrupts, etc. The virtex5 board is not cheap however.

    I second the suggestions to learn good digital design first. Learn and understand state machines as well as well.

    Xilinx WebPack ISE is the software to use with these boards that I mentioned. Along with this, Modelsim Xilinx edition works good as well. Both of these tools are free and available from Xilinx.com

  38. digilent board + Xilinx by Anonymous Coward · · Score: 0

    Get a board from http://www.digilentinc.com/ and use Xilinx WebPack software (Free as in beer) They have a lot of onboard hardware such as RAM (usually SRAM), buttons/switches/LCDs, etc. They cost about $60 USD to $2k

  39. Re:What MORON keeps tagging articles as HARDHACK? by Anonymous Coward · · Score: 4, Insightful

    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).

  40. NetFPGA? by JohnMoD · · Score: 1

    has anyone experience with NetFPGA? http://netfpga.org/ The NetFPGA is: a line-rate, flexible, and open platform for research, and classroom experimentation. About 1,000 NetFPGA systems have been deployed at over 120 institutions in over 15 countries around the world. As detailed in the specifications, the NetFPGA is a PCI card that contains a large Xilinx FPGA, 4 Gigabit Ethernet ports, Static RAM (SRAM), Double-Date Rate (DDR2) Dynamic RAM (DRAM). The card design is open-source and the hardware is made available at very lost through donations of gifts and Silicon chips by sponsors of the NetFPGA project. The NetFPGA enables researchers and students to build working prototypes of high-speed, hardware-accelerated networking systems. The NetFPGA has been used in the teachers in the classroom to hgelp students learn how to build Gigabit Ethernet (GigE) switches and Internet Protocol (IP) routers. It has also been used by researchers to prototype new modules that use hardware rather than software to forward packets.

    1. Re:NetFPGA? by Anonymous Coward · · Score: 0

      It's a pretty nifty project with a very active community. I was looking forward to working with one at my job, but that IRAD project got cancelled due to budget cuts. :(

      That said, I wouldn't reccommend it unless you've got some FPGA experience under your belt already. Academic pricing is $500 and non-academic is $1000.

  41. Tips from someone who's done this before by Anonymous Coward · · Score: 0

    The Xilinx starter kits are cheap. If you want something with a few more peripherals, the Altera DE2 or DE2-70 kits have more extras than you can shake a stick at.

    Both Altera and Xilinx offer free versions of their tools.

    VHDL or Verilog doesn't matter, pick one and learn the basics.

    You should expect to have to know something about interfacing digital hardware to get anywhere. Having an oscilloscope or logic analyzer handy will save you time debugging when you try to interface to external chips.

  42. Check out Avalda's F# to FPGA compiler by fpgasafari · · Score: 1

    It will enable you to write real code for an FPGA using a subset of normal F# with some parallel programming semantics. You can download it here. That is, you can write normal F# code and calculate some result as a regular F# program on your pc, then compile the code for the FPGA and see the same output on an FPGA. It's ideal for a software programmer like yourself who wants to get started with serious FPGA programming. There are many good books on verilog and VHDL. For VHDL one of the best is Peter Ashenden's "The Designer's Guide to VHDL". For verilog a good book is Vranesic and Brown's "Fundamentals of Digital Logic with Verilog Design" (they also have a similar book for VHDL).

    Xess has a good Xilinx-based started board and great tutorials. As other's have mentioned, Digilent also has some good starter boards. The company was started by a couple of professors from Washington State University. A course that one of them teaches (Clint Cole) has some excellent tutorials on FPGAs. Make sure you get a board with a VGA interface and check out some of the classic arcade game projects implemented on an FPGA (eg, fpgaarcade.com). Enjoy!

  43. Re:Mai Advais by Muad'Dave · · Score: 1

    Nah, he just 1337-ified this +4 Informative post.

    --
    Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
  44. Buy this book by teh_commodore · · Score: 1

    Fundamentals of Logic Design - Roth. Designed for a self-paced course taught at the University of Texas at Austin, so actually geared toward your needs. http://www.amazon.com/Fundamentals-Logic-Design-C-Roth/dp/0495073083/ref=sr_1_1?ie=UTF8&s=books&qid=1247594924&sr=8-1

    --
    --"insert clever quote here"
  45. Recommendations by Ditiris · · Score: 4, Informative

    I write FPGA code for a living, more in VHDL than Verilog, and more for Xilinx than Altera.

    I would actually recommend that you don't buy a board at first. You can pick one out so you can decide on a vendor's chip, that's fine, but simulate everything, because that's what HDL design is all about. Both vendors offer a free version of their toolset and there's a free simulator with each of those. Or you can download ModelSim Starter edition. I wouldn't call either one Linux friendly.

    As far as the board goes, I would recommend one of Altera's Nios II Embedded Dev Kits. I feel that although Altera has a slightly steeper learning curve than Xilinx, they also have a nicer overall package than what Xilinx is currently offering. I'm speaking from the point of embedding a soft processor though, if that doesn't interest you, then either of the cheap Altera Cyclone or Xilinx Spartan kits will get the job done.

    This is the only book you need on VHDL: The Designer's Guide to VHDL by Peter Ashenden.

    I haven't found a Verilog book of similar quality.

    Buy several books on Verification and testbench writing. That's where the real work comes in, and it's significantly more work than whatever circuit design you're doing. Spend the time to learn how to write self-checking testbenches.

    Read over the Synthesis guides for whatever vendor's board you choose. Understand how the constructs you use affect synthesis. There's a wealth of information in the Xilinx and Altera online documentation. There's also a lot of really of good snippets of code which are themselves useful but also typically contrast less and more effective constructs for synthesis.

    And finally, I will echo the caution that HDL is not a programming language, it is a design language. If you do not have a fundamental grasp of circuits, logic design, and computer architecture, I would recommend you pursue those topics first.

    1. Re:Recommendations by Anonymous Coward · · Score: 0

      You'd have to run Altera's software in a VM, but you get SignalTap (by enabling TalkBack) if you prefer to debug in hardware instead of simulation. Xilinx' Chipscope is for-pay only (and less nice).

      On the other hand, one tool that is nicer in ISE is FPGA Editor, which shows you everything. You can see _exactly_ how the tools have synthesized, mapped, placed and routed your design. Altera obscures most of the routing (aside from congestion). If you're into the nuts and bolts of FPGAs, you can spend a lot of time here.

    2. Re:Recommendations by Anonymous Coward · · Score: 0

      I agree with everything except the book you recommend. While the Designer's Guide does seem to cover every aspect of VHDL, I don't think that's what he needs. For example, real numbers or wait statements might be good for behavioral modeling, but you can't synthesize that directly. Ashenden's book is definitive and I can appreciate it more now that I have an idea what I'm doing, but he dosen't focus on synthesis vs simulation. I taught myself VHDL and was pulling my hair out with Ashenden's book. RTL Hardware Design Using VHDL by Pong Chu focused on the RTL standard exclusively. That book set me straight pretty quickly. It also covers many generic logic design concepts. Pong Chu also wrote 2 'cookbooks' for the Spartan 3 series, one each for VHDL and Verilog. They are FPGA Prototyping by VHDL (or Verilog) Examples. I've read the VHDL version (I believe they are equivalent) and it has a whole section on peripherals (UART, PS2 keyboard/mouse and memory and vga controllers). Also another section on using the PicoBlaze soft microcontroller.

  46. Verilog by SkOink · · Score: 0

    My advice would be to learn Verilog first, particularly if you're coming from a computer science background. I find Verilog to be much cleaner and easier to read / understand. On the hobbyist (or even the small-scale professional) level, Verilog will probably be easier than VHDL.

    I find that VHDL scales to extremely large designs better than Verilog (much better generate statements, pre-processing macros, and paramterization). VHDL is also better if you're really strict on version control and module heirarchy. But if you're working on a one-man project, you probably don't need or want VHDL's unnecessary complexity.

    Ultimately, both languages do the same thing and in basically the same way. When you get down to the actual nitty gritty where you're writing the HDL, they're pretty similar. They differ mostly in how they handle passing arguments to- and from- modules, and what kind of compile-time constructs they support.

    Last but not least, I would also recommend starting off with Xilinx's Webpack and a Spartan-3 starter board. Get something with a digital-analog converter and an analog-digital converter too, some LEDs and pushbuttons, a UART transceiver, and a ton of GPIO headers. GPIO is where FPGAs really shine.

    --
    ---- I'll take you in a Hunt deathmatch any day.
  47. Altera Cyclone 2 Starter Kit / Terasic DE-1 by hpa · · Score: 2, Informative

    It is a little old, but the price is excellent... $150 for the general public, and $120 for students. Even though there are cheaper boards on the market, I have found that the combination of features at a low price has been pretty unbeatable, and it is also available from a lot of distributors.

    Now, in the interest of full disclosure, I have been focused heavily on retrocomputing projects... they're a lot of fun.

  48. try ... by dominic.laporte · · Score: 1

    Disclaimer:
    I am not affiliated with them. Just something i was my self interested in for a while just like you.

    these guys at www.picocomputing" they have nice little cards.

    One thing is that the tools are still not available for free if you want to do very advanced stuff.

  49. OKAD by samjam · · Score: 1

    Use OKAD, it's commercial quality and will fit on a floppy disk.

    Seriously: http://www.colorforth.com/vlsi.html

    Don't let the old-school lack of whizz-bang on the website fool you, this real stuff

    http://www.ultratechnology.com/color4th.html

    You're probably not smart enough for it.

    http://www.c2.com/cgi/wiki?ColorForth

    I'm not. I can't even find a download link or a sales page.

    http://modest-proposals.com/colorForth.htm

    Sam

  50. Re:Mai Advais by AKAImBatman · · Score: 1

    Well, that explains the post. However, that's not 1337, that's LOLCAT; a derivative of texting language, itself a derivative of common IRC abbreviations.

    1337-5p34| was developed to make the text hard to read/index and was "cool" for the hip 90's h4X0rz generation. i.e. Back when putting Zs on everything was kewl. :-P

    I'd insert some completely random references that make fun of the movie Hackers, but that would be admitting far too much about my knowledge of the 90's computer culture. ;-)

  51. Digilent by Anonymous Coward · · Score: 0

    Digilent (http://www.digilent.us) makes good development kits. They tend to be pretty inexpensive and a good value. If you have the cash their XUP board has a good FPGA chip and a lot of great peripherals.

  52. a solid programming background only hurts you by goffster · · Score: 2, Insightful

    Forget what you know about programming, FPGA's are about thinking in a compleltely different mind set

    1. Re:a solid programming background only hurts you by Ren+Hoak · · Score: 1

      Mod parent up +insightful.

      I've been programming for over 25 years, most of that at the firmware/driver level in C. I went on a hardware quest (for my own edification) about a year ago, and I did an independent study course for credit at my local university. My focus was on Verilog (because that's what's used within my company), and it was truly a different beast than programming! I definitely had to train myself to think differently to accomplish that.

      There are many good boards suggested by others in this thread. I used three boards myself. The first board I used was http://www.xgamestation.com/view_product.php?id=40 - containing a Lattice Semiconductor CPLD. The board was a good starter because it was designed for education, and included a lab manual of quite a few projects. Potential downside: the lab manual and tools it comes with are not based on either Verilog or VHDL, but rather ABEL. I did everything in Verilog instead, and still used the lab manual as a source of exercises. The Mach64 board is fairly inexpensive.


      I also used a board from http://www.opalkelly.com/ -- this product is a little pricey as an educational device. Their hardware contains Xilinx parts. What I liked most about it though is its USB interface -- first, you can use their tool to download your hardware description without being required to flash the board (where many other boards require you to flash the image to exercise it). Second, and more interesting to me -- Opal Kelly's boards include virtual device libraries, letting you attach hardware to USB-carried channels for data I/O and triggering to a remote application. They include a library to allow you to write a remote application to support the other end of this. I don't know if they support Linux though -- everything I did on the PC end was under Windows.


      Finally, a reasonably priced board is http://www.embeddedarm.com/products/board-detail.php?product=TS-7300. This board is not centered around its FPGA, instead it's an ARM9 based CPU board. The board includes full embedded Linux support and all the typical devices you would expect to find, and it has a user-accessible Altera FPGA on board. Their linux distribution includes a tool to send a FPGA bitstream over to the device, letting you quickly test a new hardware description (like the Opal Kelly board, without programming flash). Potential downside here... the manufacturer includes a bitstream image that is used by default, which enables (among other things) its VGA port and a second Ethernet interface - and their open source Verilog for this device doesn't include those, so you sacrifice some of the board to define your own hardware. You don't sacrifice anything you can't use the board without though (there's another Ethernet port; there's a few serial ports, etc., which don't require the FPGA).


      Good luck!

    2. Re:a solid programming background only hurts you by Anonymous Coward · · Score: 0

      This is an important point. The hardest thing for me to learn was how to think "in hardware." FPGAs don't run procedurally in the sense that software does, they run things concurrently. It's a tough nut to crack if you have a lot of experience programming software.

  53. Extraordinarily useful resource by svtdragon · · Score: 1

    A former professor of mine, Dr. Ed Doering, set up this page here for our intro logic/FPGA course: PLD Oasis. The school it's hosted off of, my alma mater, is the school that produced one of the co-founders of Xilinx.

    In any case, Dr. Doering has lots of video tutorials about how to use Xilinx software, Spartan boards, Nexys boards, and all other manner of Progammable Logic Devices (PLDs), as well as some clever software resources. He includes things about visual schematic design, which may be beneficial for being able to drop logic circuits onto FPGAs without Verilog as an intermediary, but it's also useful in that you can look at the intermediate Verilog files to get a handle on how Xilinx renders schematics to code.

  54. Re:Mai Advais by julesh · · Score: 1

    that's LOLCAT; a derivative of texting language, itself a derivative of common IRC abbreviations

    Lolcat didn't derive from text language. AIUI, it sprung up as a grammatical variation of standard english with rather irregular conjugation of verbs, combined with instant messaging / chat room slang, often misspelled for "cute" effect. Certainly, Mark Liberman associated it with leet rather than texting.

    1337-5p34| was developed to make the text hard to read/index and was "cool" for the hip 90's h4X0rz generation.

    Leet is both a method of encoding using alternative characters and a set of slang words; either can be used with or without the other. Many of those slang words have entered the instant messaging slang; words like "pwn", "noob" or "pron" are common with people who would never otherwise use leet.

  55. Re:What MORON keeps tagging articles as HARDHACK? by MobileTatsu-NJG · · Score: 1

    Or how about those fucking IDIOTS who use Windows voluntarily? Could anyone be more stupid, more of a fucking sheep, more of a mindless dweeb than to voluntarily use Windows? Duh, of course they can't.

    So you're saying we should not be mindless sheeple and do as you do?

    --

    "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

  56. Re:What MORON keeps tagging articles as HARDHACK? by jacquesm · · Score: 1

    and all those 'software simulators' are executed by hardware...

    In the end, it doens't matter how many virtualization layers you've got you are programming to tell the *hardware* what to do

  57. OpenCPI, http://opencpi.org/ by JohnMoD · · Score: 1

    also something to check out, http://opencpi.org/, it will be released and OSS in a few weeks The Open Component Portability Infrastructure (OpenCPI) is a real-time embedded (RTE) middleware solution that simplifies programming of heterogeneous processing applications requiring a mix of field-programmable gate arrays (FPGA), general-purpose processors (GPP), digital signal processors (DSP), and high-speed switch fabrics. The âoemixâ can be over a lifecycle (technology insertion) as well as within a single implementation (to meet SWAP constraints). CPI improves code portability, interoperability, and performance in FPGA and DSP-based environments by providing well-defined waveform component APIs (application programming interfaces) with a set of infrastructure blocks that act as a hardware abstraction layer (HAL). CPI is also appropriate for the incorporation of GPU and multicore technologies. CPI is uniquely positioned to meet the goals of S3 since in some sense component-based systems are computer-scienceâ(TM)s answer to dealing with âoeknowledge captureâ and lock-up of intellectual property (IP). sign up here: http://lists.opencpi.org/listinfo.cgi/opencpi_announce-opencpi.org

  58. Focus on HDL for SYNTHESIS by Anonymous Coward · · Score: 0

    Both Verilog and VHDL can be used as either a modeling language, or for synthesis. You need to learn synthesis. There are some texts that treat the language from this view and I strongly recommend you find one. Verilog is a little easier to learn.

  59. FPGA programming is very, very different by paul42w · · Score: 2, Insightful

    This really is not a task for programmers. It is a task for an engineer that has done both logic and software design. I've been programming FPGA's since Xilinx came out with their first chips. At the time, it was all schematic capture. Place and route never completed on its own, it always required user editing to finish. FPGA design techniques depend on your constraints. For some projects, it is much cheaper to buy a very large FPGA and not worry about space optimization. If you are building thousands of the same device, then space optimization is critical. For other projects, logic timing is everything. Every chip has it's own constraints as well, especially if speed is an issue. When speed is an issue, you have to really understand how your VHDL will be implemented, because it will make all the difference between sucess & failure. Learning how to use constraint files is important. Learning how to test using simulations is critical. Time spent writing and runing simulations may exceed design time for an order of magnitude.

  60. Re:What MORON keeps tagging articles as HARDHACK? by neumayr · · Score: 1

    On the matter of tags... What the hell are those "story" tags for?

    --
    Truth arises more readily from error than from confusion. -Francis Bacon
  61. A Nice Verilog Online Class by frohro · · Score: 1

    Kirk Weedman, KD7IRS, has posted some good Verilog classes on http://verilog.openhpsdr.org/ that are tailored to amateur radio enthusiasts that have been working on the High Performance Software Defined Radio (HPSDR) an interesting open source hardware project.

  62. Re:I've asked some "high profile" hobbyists the sa by Drongo14 · · Score: 2, Interesting

    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.

  63. Re:What MORON keeps tagging articles as HARDHACK? by morgauxo · · Score: 1

    iPhone users.

  64. Peter Ashenden's site... by bagofbeans · · Score: 1
  65. Re:What MORON keeps tagging articles as HARDHACK? by AleBaba · · Score: 1

    No. When you upload your C/ASM-code to your ÂC, e.g Atmel, then âoeyou are programming to tell the *hardware* what to doâ. Downloading to an FPGA is like telling it what to be.

  66. Have you consider microcontrollers instead by Anonymous Coward · · Score: 0

    For someone with a programming background planning on doing circuit development, you may prefer to work with microcontrollers. My experience with fpga's has been interfacing existing processors with peripheral devices, or signal processing applications that must be done very quickly. Another use is for performing very specific tasks in massive parallel, as a colleague of mine has done, but I do not have first hand experience in this utility.
    However my understanding in all cases is that there is a big learning curve for doing these kinds of things.

    If you want to blink some lights, turn on lcd screens, interface with accelerometers, etc. i would suggest mC as a much-much cheaper alternative ($0.90 compared to fpgas in the $100s ). Or for more advanced applications you could look into gumstix($169) which are full featured computers smaller than a stick of gum!

    That being said you could use some of the xilinx toolkits for matlab to simplify your work, but for the most part in my humble opinion for amateur eletronics fpga's are a bit too complicated.

  67. Re:bconway, go drink some douche water. by Anonymous Coward · · Score: 0

    Oh, you must be in HR.
    What makes you think he cant teach himself. People have been experimenting with electricity and electronics since it's discovery. Do you think Marconi or Edison had degrees in Electrical Engineering?
    I suppose it's also futile to give a child an electronics kit since a grade-schooler cannot possibly have a sheepskin yet.
    In my career, I've seen more Masters and PHD Mechanical Engineers who couldn't design buildable machines than I ever thought possible. What are they teaching you kids today? It certainly isn't to think for yourself
    NOW GET OFF MY LAWN!

  68. Open Graphics Project FPGA card by Anonymous Coward · · Score: 0

    Consider the OGD1 card from the Open Graphics
    Project. Big FPGA, and video outputs (2x DVI 1x s-video)

    http://opengraphics.org/

  69. FPGA development tools for Linux by yrock · · Score: 1

    Altera, www.altera.com has a version of their FPGA development software for Linux -- Quartus II. This tool allows FPGA development for many Altera eval boards, and is available for free via their website. My personal preference is to develop in Verilog rather than VHDL. The syntax is more familiar to someone who also develops firmware in C/C++. Overall, though this is a personal preference. Each language has its opponents/proponents.

  70. Forware by pablodiazgutierrez · · Score: 1

    There's a Spanish startup, Forware, that develops FPGA development tools and has a growing user community. Not sure about the conditions, though.

  71. Re:What MORON keeps tagging articles as HARDHACK? by digitalunity · · Score: 3, Insightful

    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.
  72. Altium Designer by Anonymous Coward · · Score: 0

    You Could always try Altium designer ? www.altium.com it's windows based but covers a broad spectrum of FPGA (not a single brand) and covers the whole electronic design process. Also at the moment they are have some very cheap pricing.

  73. Nice try posing as an AC, bconway by Anonymous Coward · · Score: 0

    Now you're going to get it. Mr. Smart Fecal Matter, repeat after me: MARCONI AND EDISON WERE NOT teaching themselves to write an HDL. Marconi was trying to make wireless communications work, and Edison was throwing any and every idea attempting to come up with useful inventions. What did they have in common? THEY WERE WORKING WITH RUDIMENTARY CONCEPTS. We are talking Maxwell's Equations even if those as a lot of their work was done empirically. An HDL? Think of how many levels of hardware AND software abstraction you have to understand before you can even begin to get a basic grasp of an FPGA logic block.

    Sorry, sir, but you are a complete moron. If I were your parent, I would have you committed.

    1. Re:Nice try posing as an AC, bconway by Anonymous Coward · · Score: 0

      Um, whatever. I just wrote a whole USB 2.0 DAQ chain, from the C++ app down to the Verilog-based FIFO interface to the ADC, and the last time I saw the inside of a college classroom, it was from the south end of a northbound mule. They told me not to come back until I could get my GPA up past +1.00.

      It's entirely possible to teach yourself HDL development, if you've already taught yourself (or been taught) the prerequisite electronics and programming skills.

  74. Altera by Anonymous Coward · · Score: 0

    I would suggest Altera. The toolset is amazing compared to Xilinx. Xilinx is notorious for horrible tools. I even met a manager who works on the tools at Xilinx and he agreed: they suck.

    You won't really notice a difference in FPGA performance unless you do something really fancy. Get a cheap Altera board and use their IDE because Xilinx tools are very very very buggy.

  75. Trolling or not? by pem · · Score: 1
    You're definitely not trolling (and I agree with you that FlexLM sucks). But contrast what you have to say:

    Xilinx's move to FlexLM is a big deal. It's why I went with them over Altera in the first place. That reason is now gone.

    with what he had to say:

    I personally chose to avoid Xilinx for my uses, in favor of Altera. Not because I dislike Xilinx or anything, but simply because the last thing I wanted is more licensing complexity to deal with.

    To me, that reads like he thought Altera's licensing scheme was better, easier, simpler. My understanding and belief is that was never true -- it was advantage Xilinx until they decided to tie it up by also succumbing to FlexLM. But, the offer at the end of my email remains -- if he thinks Altera licensing is better, by all means let him explain himself.

  76. Re:What MORON keeps tagging articles as HARDHACK? by tzanger · · Score: 2, Informative

    Spartan 6 is anaemic? What are you trying to build? I am working with a Raggedstone Spartan IIIe card (the mini-can); it's US$150 and I'm developing PCI hardware with it. That's hardly anaemic. There's lots of fun to be had with smaller devices as well.

  77. Cheap PCI FPGA boards by Anonymous Coward · · Score: 0

    The question is a good one to ask.
    Finding cheap FPGA dev boards is not all that tricky, depending on your needs.

    I am in a similar situation:
    I am trying to locate a cheap FPGA dev board with a PCI interface. Ideally, with a PCI logic chip on the board so I don't have to design and verify the PCI logic. By cheap, I mean around $200 US.

    If anyone knows of anything apart from the RaggedStone (which looks pretty good) I would like to hear about it.

    Cheers.
    S.

  78. Linux friendly FPGA board by smi4409 · · Score: 1

    Take a look at the Demand Peripherals Baseboard4. It uses standard USB-serial for code download instead of JTAG and the development is even Makefile based. Hope this helps ....

  79. FPGA4Fun and KNJN Altera boards under $50 by Solder+Fumes · · Score: 1

    Read through some of the tutorials at http://www.fpga4fun.com/ and then head over to the sister site http://www.knjn.com/ to find some FPGA boards. You can get a very good introduction to FPGA concepts for less than $50. The Pluto boards with Altera Cyclone FPGAs are perfect for getting your feet wet.

  80. Basic CPLD Tutorial for beginners by elecrom · · Score: 1

    If you want to start learning FPGAs, then first logical step is to learn CPLD first. I have written small step by step tutorial for beginners : http://elecrom.wordpress.com/2008/03/02/getting-started-with-xilinx-xc9536/ Hope it helps.

  81. What about Handel-C and SystemC? by jpg5 · · Score: 1

    Hi, Regarding the development on the FPGA, I didn't see anyone suggesting Handel-C (proprietary from AgilityDS http://www.agilityds.com/), or SystemC (http://www.systemc.org/). I have only used Handel-C to be honest, during a course of my MSc. Not to bad for beginners I think, I would suggest it. Although it lacks support for any platforms other than Windows...

  82. Altera free tools are really good. by RayDude · · Score: 1

    I'm using Altera tools for work right now. We have a paid seat, but even in free mode, the web kit is powerful enough to do pretty complex stuff. To experiment with the software, go to altera.com, click download in the upper right corner and download the web kit. Unfortunately, the linux version is not free but you can use it for 30 days without a license. Xilinx also has a free version you can use. As for development boards, here's the cheapest FPGA board I found for Altera: http://www.altera.com/products/devkits/altera/kit-cyc2-2C20N.html I'm using the Cyclone III version of that board. Its quite good. For a Cyclone I board, these look inexpensive and have a wide range of features: http://www.knjn.com/ShopBoards_USB2.html Xilinx has a lot of development boards as well. My experience with Xilinx is better in the support department than Altera. They will give you the software and even dev hardware if you ask nicely. But their software takes more than 12 hours (yes twelve hours) to install and update on a core 2 duo machine. Sad really. The altera software is lighter feeling but just as powerful and seems to be more ... what's the word: friendly. I haven't used Xilinx in a while but I had a hellofa time with it, when I was trying to prototype asics with Virtex II. Altera is currently under mandate to make money from their software, even though they are a hardware company. That makes getting a free license almost impossible. Too bad for them. I've been getting great support for Altera from Octera Solutions (as opposed to Altera itself). Perhaps they can help you. If you're brand new to hardware, you might want to learn Verilog or VHDL first. I think both Xilinx and Altera's web kits come with Modelsim. Its a stripped down version but it will be fine to learn the basics.

  83. Suggestions on board and approach. by Anonymous Coward · · Score: 0

    Hello.

    I would consider myself as master programmer (professional experience > 10 years), with very considerable experience on embedded programming and networking.

    I've recently self taught myself as amateur hardware engineer. It has been very useful to be master in parallel programming techniques and understand the parallel actions mindset as parallelism in hardware design is the most significant difference to software design which is often very serial. I started with VHDL but moved to Verilog, because I tend to like verilog level of verbosity. VHDL is extremely verbose. Also, my development tools supported systems verilog, which appeared to be quite a good way to do "test driven hardware design". Anyway, I first started with Altera Cyclone III Starter Board, which seemed quite nice.

    I was quite fun to play with it. I had quite a soon environment up with ucLinux and NIOS II. And it felt pretty much home to write code for the embedded processor and occasionally enhance the board with self-designed peripherals.

    Anyway, after playing with the FPGA I found out that using good hardware simulator (such as Mentor Graphics ModelSim) is often better for designing small hardware components than actual FPGA. The debugging is much more precise and you get easily ran the system in "step-by-step" mode. ModelSim PE is very expensive, but you may find restricted versions from FPGA vendors for free. I got free version for Altera, not sure if its still free, the Actel one should be free.

    After looking at things, (my work has paralleled hw design), I've noticed these things: If you like fancy embedded soft core processors, get lowest costs Actel M1 you may find (it can be loaded with ARM M1 which is pretty much as good as you can get for generic CPU like CPU for softcore on FPGA.)

    $295 (does it fit you budjet) is price for soon available Spartan-6 is quite nice price.
    Compared to typical Spartan-3 board advantage is much higher Hz for designs and niceties on board - lots of RAM and NIC.

    The soon available Virtex-6 board seems superb. Fits designs that were previously only for 10k or higher cost equipment. Out of your price range but brings much lower cost of designs. ....

    Summary: For learning and small designs: Use ModelSim. No cost neccsarry.
    For trying etc. Spartan-3 or Cyclone-III or wait Spartan-6 (soon available).
    For embedded processing: Xilinx is good or if you want real processors Actel.

    Hope this helps.

  84. Re:What MORON keeps tagging articles as HARDHACK? by hh4m · · Score: 1

    HDL doesnt tell the hardware what to do, it decides how the interconnects are configured. if you make a simple counter to count from 0-2 in software, it will probabaly end up being a 0-3 counter cause what u built via software is essentially a 2 bit hardware counter. u WILL have trouble with hardware description if u r from a purely software background.

  85. Decent cheap dev kit by Anonymous Coward · · Score: 0

    http://ftdichip.com/Products/EvaluationKits/FPGA.htm

    Runs from usb power, plugs into a breadboard, and it's cheap. ( £86 )

    http://apple.clickandbuild.com/cnb/shop/ftdichip?op=catalogue-products-null&prodCategoryID=5&title=USB+to+FPGA

    Also, they're based in the UK - so easier for you to get a hold of.

  86. Very good 101 blogg by Anonymous Coward · · Score: 0

    Hi
    You should check this blogg, this guys had some time over and started from scratch and have documented it in a very good way
    http://svenand.blogdrive.com/archive/11.html

  87. combined FPGA and ARM processor by arkarumba · · Score: 1

    I not really sure how this compares to other options.
    I'd be interested in the thoughts of those more expereienced.
    .
    US$229
    500Mhz ARM9 CPU running Linux
    onboard 12,000 LUT on-board programmable Lattice FPGA
    http://www.embeddedarm.com/products/board-detail.php?product=TS-7800
    .
    US$84
    250MHz ARM9 CPU running Linux
    onboard 5000 LUT Lattice FPGA
    http://www.embeddedarm.com/products/board-detail.php?product=TS-7500

  88. Re:What MORON keeps tagging articles as HARDHACK? by digitalunity · · Score: 1

    When hobbyists get interested in FPGA development, the first thing they turn to are Altera's and Xilinx's websites and look at top of the line FPGA's like the Virtex 6 LXT. The Spartan 6 is definitely a lightweight compared to the Virtex features.

    A newly interested hobbyist should not be under the impression that they can spend $250 and it will have the same features.

    --
    You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
  89. Re:What MORON keeps tagging articles as HARDHACK? by tzanger · · Score: 1

    I disagree. I think a hobbyiest can take a look at the simpler, smaller, cheaper devices and have lots of fun without jumping to the top-end parts. Hell, they could have a ton of fun with CPLDs too, although they'd become pretty limiting in a hurry.

    Yes, Spartan6 is a lightweight compared to the Virtex line, but again... we're talking about getting started in FPGAs. I think throwing a ton of money at a dev board that will be severely underutilized for months, if not years, is a fast way to turn people off of learning about FPGAs.

  90. store to purchase your board from by Anonymous Coward · · Score: 0

    Might I suggest looking at

    http://microcontrollershop.com/

    for purchasing whatever you decide upon.
    They sell most of the stuff everyone here has suggested, as well as some books to assist you in learning.

    You might also want to chose some sort of project/goal to aim yourself at.
    It's easier to stay focused on moving forward with a goal in mind.

    regards

  91. Idiot. by Anonymous Coward · · Score: 0

    If you read my prior posts, you would get it. I *said* that the guy is better off taking himself to the guillotine and killing himself because he is trying to learn an HDL without any prior basis. Do you understand what this means, tool? It is a complete barrier to entry, and if he is posting to Ask Slashdot, chances are that he does not have the ingenuity to teach himself the prerequisite underlying principles. Amen.

  92. Get involved with a new FPGA Open Source community by jack.gassett · · Score: 1

    Having fairly recently gone through the same process the steps I took are still fresh in my mind. I would recommend doing the following:

    -Get a good understanding of digital electronics, you need to understand the building blocks that HDL languages such as Verilog and VHDL describe. Learn about flip flops, latches, counters, shift registers, and memories. With HDL you are describing how these basic building blocks connect rather than the sequential programming you may be used to. So go to Amazon and buy several used books on "Digital Electronics" or "Digital Fundamentals". You will be using these concepts to solve problems with HDL so it is important. Think of it as the equivalent of a "Data Structures and Algorithms" book for programming.

    -Once you have a basic understanding of Digital Electronics then it is time to start learning an HDL. One of the biggest trip ups that I ran into while learning VHDL was the distinction between VHDL for simulation and VHDL for RTL synthesis. I was finding VHDL examples and tutorials on the web that did not explain the difference. There are many VHDL examples on the web that are only valid for simulation but do not work for RTL synthesis. So I ended up writing VHDL code that worked great in simulation but would blow up when I tried to synthesize it to run on a board. I wasted many, many hours before I found a book that clearly explained the difference. So get a book that focuses on RTL synthesis to avoid confusion in the beginning. The book that I found very helpful was Essential VHDL RTL Synthesis Done Right by Sundar Rajan. This book truly was the key, for me, to being successful with VHDL. (Search around for a better price, I did not pay over $100 for the book)

    -Another great book that isn't necessarily important for HDL learning but has many easy to understand electronics solutions is Practical Electronics for Inventors by Paul Scherz.

    Finally, get involved with open source FPGA projects, there is nothing like studying the code of working projects. Head over to http://www.gadgetgactory.net/ which is a new FPGA Open Source community trying to make FPGA's more useful and accessible. You will find:
    -A completely open source FPGA circuit design, the Butterfly Platform, that you can build yourself or purchase pre-assembled and tested. This board can fulfill your development needs and has the advantage of being actively developed for. Most dev boards on the market have examples that you can work through but once you get through all of them you are on your own. The goal of the Butterfly Platform is to find the best FPGA open source projects available and get them all running on this board.
    -An open source Logic Analyzer design that is both useful for your electronics workbench but is also an amazing example to help with learning VHDL.
    -An AVR compatible processor that supports the avr-gcc toolchain for C development. (Still a work in progress)
    -Tutorials and Screencasts for basic FPGA tasks.

    Take a look around and see if there is anything helpful. The site is in heavy development right now so keep checking back for more projects, tutorials, and FPGA wiki's.

    Jack.

  93. Re:What MORON keeps tagging articles as HARDHACK? by Andy+Dodd · · Score: 1

    An FPGA load is something very different from software... Exactly what an FPGA bitstream should be defined as is still the subject of much controversy and debate due to being in such a grey area.

    As I see it, software is machine-executable code that runs on a processor.

    An FPGA is a whole different animal - FPGA code doesn't execute, it effectively defines the internal wiring of the FPGA. It is most definately not, in my opinion, "software".

    It isn't exactly hardware as it is reconfigurable and defined by some memory contents, but in general, it's very difficult to create an FPGA bitstream without a good fundamental understanding of digital logic design, which is a hardware field, not a software one. An FPGA designer must be aware of many design constraints on the bitstream such as gate propagation delays and timing. Thus, an FPGA article most definately is deserving of a "hardhack" tag.

    --
    retrorocket.o not found, launch anyway?
  94. Have a project in mind by j1m+5n0w · · Score: 1

    My advice for learning fpga programming is the same for learning a regular programming language: it's a lot easier to stay motivated if you're not just learning for learning's sake, but have some particular project in mind. This is where I got stuck; I read a big thick book on verilog and got myself a development board and all the software set up, and I figured out how to make the LEDs blink faster or slower, but then I got distracted and never actually went on to do anything more complicated.

  95. Advice on choosing FPGA board, and videos by ledblink88 · · Score: 1

    You are definitely right, it is best to get a low cost FPGA board to start learning. You will definitely find it fun and satisfying. Video 3 on this page is "FPGA boards and general advice on what to get" http://www.burched.com/freevideos.ag.php There are some other videos there that will help you with learning.

  96. Use Verilog by Anonymous Coward · · Score: 0

    If you have any background in "C" or "C++" then use Verilog - the I/O routines are very similar, making testbenches easier to write than in VHDL (at least for me, anyway) I started out learning VHDL, but switched over to Verilog and I'll never go back.

  97. Simulation is an important criterion by Anonymous Coward · · Score: 0

    Another good reason to use verilog is that you can use the very useful Icarus verilog simulator from http://www.icarus.com/eda/verilog/ - I used it in addition to professional products such as Cadence ncsim or Mentor Modelsim and found that the price/performance ratio of Icarus is extremely good (since it is free and performs well). Naturally the professional products have more bells and whistles, but the versions which are provided for free with FPGA development kits are limited in the size of project they can simulate.

    Note - if you use icarus you will need a free waveform viewer to view the simulation results - I found gtkwave and dinotrace do the job quite well, or see wikipedia for a more comprehensive list.

  98. Re:What MORON keeps tagging articles as HARDHACK? by Anonymous Coward · · Score: 0

    The Spartan 6 is definitely a lightweight compared to the Virtex features.

    And a quad-core Xeon is a lightweight compared to a Beowulf cluster of Crays, or whatever. Hardly anybody needs a high-end Virtex part, and certainly not for learning.