Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Recommend Reading for FPGAs and VHDL? 41

George Holland asks: "After designing several projects around PLD-based programmable logic, I decided to buy a FPGA development board (the Spartan-IIE based XSA-200) to experiment with something more capable. I'd like to find some good books on VHDL and FPGAs in general, but there are many to choose from. Some are aimed at beginners (I have a solid background in both low and high level programming languages and digital electronics), others gloss over the low-level details of an FPGA (covering RTL only, skipping floor-planning) assuming the tools with synthesize an optimal design with no manual tweaking. Trying to find something that fits in the middle is what I'm after. What books do Slashdot readers suggest? Ideally something that covers the WebPACK toolset from Xilinx or the Spartan-IIE would be best as that's what I'm using."
This discussion has been archived. No new comments can be posted.

Recommend Reading for FPGAs and VHDL?

Comments Filter:
  • I'm an old fart TTL designer that loves schematic capture
  • you also get a VGA port that produces vivid graphics in 512 colors

    Man, now that's kickin' it 01d 5k001! :)

    You may also be interested (or not) in the XgameStation, and the Commodore One. Sorry, too lazy to look up the URLs right now.

    Or, if you just wanna do low-level programming, check out menuetos.org.

    Fun for the whole geek family!
  • What applications would you use one of these for? I see these embedded things advertised all the time and don't have a clue what anyone would use them for. Too low level for me I guess.
    • by orangesquid ( 79734 ) <orangesquid@NOspAM.yahoo.com> on Tuesday January 04, 2005 @06:42PM (#11258622) Homepage Journal
      Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project. Basically, any time you need something that can handle as many inputs as you want to throw at it simultaneously (as long as you design it for that many), and functions in real-time.

      Think of digital controllers in microwaves, ovens, printers, USB devices. Or, maybe you want to throw a CPU and a few off-the-shelf bridge controllers onto a tiny board without needing dozens of other components to control the system (if it's a tiny thing with very specific hardware requirements, you can say "screw scalability" and design minimal logic to synchronize and channel your data).

      Or, perhaps digital audio technology, or maybe video editors/filters (DSP stuff).

      People prototyping their own custom logic chips typically use FPGAs before ordering production components. For example, maybe you're designing some custom 3d video hardware to handle special GL extensions that consumer cards don't have, building a system for process control (meaning, running factory equipment), designing robotics, doing data acquisition (analog-->digital hardware), making a video game system, designing some digital stompboxes for your guitar, or making a digital video filter to eliminate MacroVision so you can play DVDS on an old TV that doesn't have S-Video inputs.

      Most of this stuff is unexplored territory for coders and software designers... kind of like how a fashion designer wouldn't know how to build a house.
  • VHDL (Score:4, Informative)

    by Smallpond ( 221300 ) on Tuesday January 04, 2005 @06:33PM (#11258547) Homepage Journal
    I used "VHDL" by Douglas Perry, McGraw Hill, 2nd edition. I see its now in 4th edition, so it seems to have some staying power. Its not tied to a particular development environment, which is bad when you are trying to get over the hump as a beginner, but good as a general tool to learn VHDL.
  • How about you switch to Verilog with the rest of the industry?
    • Re:Verilog (Score:4, Insightful)

      by raider_red ( 156642 ) on Tuesday January 04, 2005 @07:04PM (#11258815) Journal
      Better yet, learn both. Verilog is the industry standard for the U.S., but VHDL is widely used in government applications and in several European companies. I've had several job opportunities based on the fact that I've worked in mixed environments with both languages.

      Navabi has a pretty good book on Verilog. The book mentioned above on VHDL by Perry is a very good starting point for that language. (I'm using the 3rd edition.)
    • 1. Verilog is by far the worst of the two languages (In a similar history to Betamax video, the worst standard won the fight, mainly as it was adopted by the US military contractors such as Raetheon and Harris) 2. It may be industry standard here in the US, but the rest of the world uses VHDL
      • I don't buy the "rest of the world uses VHDL."

        I work for a large ASIC company. We do business all over the world and have all but dropped VHDL. The demand just isn't there.

        VHDL is a better language but for most things is overkill and more difficult to learn. Sometimes simplier is better.
        • Re:Verilog (Score:2, Insightful)

          by juglugs ( 652924 )
          Well, OK, your company dropped it. I work for a large FPGA company and being US based, we primarily write in Verilog - however, the RoW seems to ask for VHDL an awful lot... I disagree on the "more difficult to learn" comment. It may be more difficult for a SW engineer, but for a HW engineer it makes much more sense. Actually, most of the SW folks I know will agree that VHDL will not let you hang yourself in the same manner as Verilog. (And without being nasty, read your sig - you should practice what you
  • by thegrassyknowl ( 762218 ) on Tuesday January 04, 2005 @06:42PM (#11258615)

    This is a link to the VHDL Designer's Guide by Ashenden (from Adelaide if I remember correctly). Some of the hardware people I have worked with used it and considered it to be the bible. From memory you can find a pre-release downloadable as a PDF somewhere, or go and buy the book. It was expensive, but well worth it.

    Another book to get hold of is one of the early student manuals that came with the Xilinx Foundation 1.5 tools. It was a beginner's introduction to the Foundation suite but it had a lot of useful snippets that helped me even through more advanced work in recent versions of the Xilinx ISE software. You should be able to find these in a university library if they have an electronic engineering course.
    • The parent is talking about the VHDL Cookbook [uni-hamburg.de] by Peter Ashenden.

      If you're learing about VHDL, consider writing some code for OpenCores [opencores.org] as part of your education. I gather they have server problems at the moment, so the link may not work.

      • I hadn't even thought of the VHDL Cookbook. The Designer's Guide is fantastic, but the cookbook presents a very hands-on way of doing things. There are literally lots of "recipies" to solve common problems. I heartily recommend it to anyone who works in VHDL.
  • OpenCores (Score:3, Interesting)

    by kinema ( 630983 ) on Tuesday January 04, 2005 @06:51PM (#11258702)
    If you haven't already you should check out OpenCores.org [opencores.org].
  • My page... (Score:3, Informative)

    by SilentJ_PDX ( 559136 ) on Tuesday January 04, 2005 @07:09PM (#11258853) Homepage
    I just took an EE course where we used several different Xilinx-based boards. I've put up a load of links and documentation for VHDL and the Xilinx tools here [silentjstudios.com].

    The course focused on soft processors, so some of the talk about Microblaze won't apply to you unless you can pony up the $500 for Xilinx's EDK.

    Even without the EDK, there are a load of cool things you can do with these FPGAs. Consider this guy's [fpgaarcade.com] implementation of the original Pac Man hardware on a single chip.
  • Check out:

    Fundamentals of Digital Logic [mhhe.com] by Brown & Vranesic

    Available in both a VHLD and Verilog version for your learning pleasure. Both books ship with a copy of Quartus II [altera.com] from Altera [altera.com]. You can get Altera development kits here [shopaltera.com] if you're looking for something bigger and better than a Spartan-IIe.

    Disclaimer: I work with the authors.

  • HDL Chip Design
    Douglas J. Smith
    ISBN 0-9651934-3-8
    Amazon Link. [amazon.com]

    It is not a complete reference text to VHDL, and it is indeed a bit dated, but is covers stuff not found in many other books.

    It covers both Verilog and VHDL, and goes into such high-level things as the best way to code state machine, the various trade-offs associated with different state machine designs, how generics can save you time, writing test benches, etc.

    It is NOT a complete language reference. For that, get the Ashenden book. But th
  • fpga4fun (Score:3, Informative)

    by Solder Fumes ( 797270 ) on Tuesday January 04, 2005 @07:48PM (#11259231)
    A great site I've run across is fpga4fun.com [fpga4fun.com]. The guy who runs the site has designed and built several really neat little FPGA prototyping boards, and has some great step-by-step tutorials for doing things like generating video signals, reading optical encoders, using Ethernet, etc. You'll probably be sad you got a Spartan IIE just to play around, since he has a great little Altera board for just $50. However I do have a Spartan IIE from Digilent and the code principles are virtually the same.
  • "Designing with FPGAs and CPLDs" http://www.amazon.com/exec/obidos/tg/detail/-/1578 201128/qid=1104896988/sr=8-3/ref=pd_csp_3/104-7443 394-0211910?v=glance&s=books&n=507846 [amazon.com] followed by "The Design Warrior's Guide to FPGAs" http://www.amazon.com/exec/obidos/tg/detail/-/0750 676043/qid=1104896988/sr=8-1/ref=pd_csp_1/104-7443 394-0211910?v=glance&s=books&n=507846 [amazon.com] In the first book, the author has a slant towards Verilog, but I learned a great deal of good design practices. The second boo
  • USENET (Score:2, Informative)

    by juglugs ( 652924 )
    I'd also recommend checking out the usenet group comp.arch.fpga [google.com]. Most folks on there are a helpful bunch.

    Of course, I also wouldn't recommend Xilinx, but I'm biased - I work for their competition :-)
  • FPGAs (Score:3, Interesting)

    by cybergibbons ( 554352 ) on Wednesday January 05, 2005 @01:47PM (#11264979) Homepage
    FPGAs are my thing really, I think they are one of the best ways into electronic design if it isn't your career.

    I'm not up on Xilinx at all, but I've used most of the Altera FPGAs available. They are all pretty amazing devices, and all have their own dedicated features such as memory, DSP, fast IO, things like that. Learn about the structure of the FPGA from the data sheets to see how they work, and recommended applications.

    If you are doing anything reasonably complex, rely on the automated routing and placing. It's simply too complex for a human to do well. When you want that bit extra speed, or maybe when you are nearing 100% usage, then start manually tweaking the automated system - there are some really clever tricks to be done here.

    I did some fairly basic projects to start with (a digital function generator, an IIR filter, a display processor) which were guided coursework assignments. They gave me the grounding in the tools and techniques required.

    I think VHDL is my favourite language. It's so different to conventional programming, and again you can learn some really neat tricks to do jobs. A neat project was a biquad filter which used a systolic array of very similar blocks - watching how it ran as a simulation was interesting.

    I think the best thing though is to come up with a complex and real world application, and build up from there. Buy some of the reference books, but do something that will really tax you - it's far more interesting doing something like this all by yourself than using books to do projects of things already designed 30 years ago.

    Computer architecture is an exciting and unexplored field. Read some papers on new ideas, like asynchronous processors, or multicore processors, and try and implement some of the ideas. It's a good way to bring the world of hardware programming and software programming together.

    I ended up developing a multiprocessor system on a chip. Which as an individual I think is a great achievement. I learnt so much doing it.
  • Actually, the Xilinx tools do a great job of taking care of the low level details. I've done many moderately aggressive designs with no floorplanning at all.

    If you have a design that has trouble making timing, you are better off going back and reworking the RTL. Try to visualize how your RTL is getting mapped to flops and logic ("use the force"). If you can talk to several experienced designers about your design, they can give you good insights.

  • As mentioned above, Peter J. Ashenden's book (now in its second edition) is the best I have found in over 6 years. It covers basics and advanced topics very well. Also by Ashenden is a book called "The VHDL Cookbook", available from http://tech-www.informatik.uni-hamburg.de/vhdl/ [uni-hamburg.de]

    An interesting (and excellent) link on VHDL coding standards in a working environment is also available off that page: the European Space Agency's VHDL coding standard (available in PostScript format here http://tech-www.informa [uni-hamburg.de]

Try `stty 0' -- it works much better.