Slashdot Mirror


Recommend Reading for FPGAs and VHDL?

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

41 comments

  1. Can't help you... by HotNeedleOfInquiry · · Score: 0

    I'm an old fart TTL designer that loves schematic capture

    --
    "Eve of Destruction", it's not just for old hippies anymore...
  2. quote from that page by Tumbleweed · · Score: 0

    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!

  3. Here's my ask slashdot by BoomerSooner · · Score: 1

    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.

    1. Re:Here's my ask slashdot by orangesquid · · Score: 3, Informative

      Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project. Basically, any time you need something that can handle as many inputs as you want to throw at it simultaneously (as long as you design it for that many), and functions in real-time.

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

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

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

      Most of this stuff is unexplored territory for coders and software designers... kind of like how a fashion designer wouldn't know how to build a house.

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    2. Re:Here's my ask slashdot by MarkGriz · · Score: 1
      "I see these embedded things advertised all the time and don't have a clue what anyone would use them for"

      Erm, controller design, custom logic, any sort of medium-to-large scale digital electronics project

      ...and let's not forget, Emulate the C64 hardware so you can one day create a C64 30-in-1 game joystick and sell it on QVC

      --
      Beauty is in the eye of the beerholder.
  4. VHDL by Smallpond · · Score: 3, Informative

    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.

  5. Verilog by shaka999 · · Score: 1

    How about you switch to Verilog with the rest of the industry?

    --
    One should not theorize before one has data. -Sherlock Holmes-
    1. Re:Verilog by raider_red · · Score: 3, Insightful

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

      --
      It's good to use your head, but not as a battering ram.
    2. Re:Verilog by juglugs · · Score: 1

      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

      --
      This sig is in Spanish when you're not looking....
    3. Re:Verilog by shaka999 · · Score: 1

      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.

      --
      One should not theorize before one has data. -Sherlock Holmes-
    4. Re:Verilog by juglugs · · Score: 2, Insightful

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

      --
      This sig is in Spanish when you're not looking....
    5. Re:Verilog by Anonymous Coward · · Score: 0

      How about you learn Visual Basic with which most of my poorly-skilled-but-well-employed friends are working.

      Understanding concepts which in this case can easily be moved between products is essential here.

  6. Acronym Hell by musselm · · Score: 0

    The what now?

    Bring it down to earth, won't you? Or at least include enough explanation so those who don't understand can go look for further information.

    Brief summaries are a very nice way to introduce a story such as this.

    Thank you!

    1. Re:Acronym Hell by alienmole · · Score: 1

      Read this page to find out what FPGAs are. VHDL is one of the languages used to program them. The rest of the acronyms don't really matter unless you're serious about getting into the subject.

    2. Re:Acronym Hell by Anonymous Coward · · Score: 0

      You do realize this is a "News for Nerds" site right? If they "Bring it down to earth" it would be http://www.nytimes.com/ (Genome map required).

  7. VHDL Designer's Guide by thegrassyknowl · · Score: 2, Informative

    http://www.ashenden.com.au/designers-guide/DG.html

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

    Another book to get hold of is one of the early student manuals that came with the Xilinx Foundation 1.5 tools. It was a beginner's introduction to the Foundation suite but it had a lot of useful snippets that helped me even through more advanced work in recent versions of the Xilinx ISE software. You should be able to find these in a university library if they have an electronic engineering course.

    --
    I drink to make other people interesting!
    1. Re:VHDL Designer's Guide by femto · · Score: 1
      The parent is talking about the VHDL Cookbook by Peter Ashenden.

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

    2. Re:VHDL Designer's Guide by thegrassyknowl · · Score: 1

      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.

      --
      I drink to make other people interesting!
    3. Re:VHDL Designer's Guide by Anonymous Coward · · Score: 0

      I would vote AGAINST Ashenden's VHDL books -- I've used them all.

      The biggest problem with his books is that he treats VHDL as a programming language and not really as a hardware design language. And if you're not experienced enough to know, designing hardware *IS NOT* like writing software.

      The result of trying to use his books is that you'll learn how to write "testbenches", but the hardware that results from your code will work poorly or may not be synthesizable.

      FPGA companies (like Actel, Xilinx, Altera) and the FPGA synthesizer companies (Synplicity, Synopsys, Mentor/Leonardo Spectrum) all have documents (sometimes that come with thier packages) on writing synthesizable VHDL with a lot of good examples -- take a look at those.

      Also, Asheden omits a lot of syntatical elements, even in his thicker books. Don't waste your money with his stuff, fine the documents from the FPGA/tool companies and save your self time and money.

  8. OpenCores by kinema · · Score: 2, Interesting

    If you haven't already you should check out OpenCores.org.

  9. My page... by SilentJ_PDX · · Score: 3, Informative

    I just took an EE course where we used several different Xilinx-based boards. I've put up a load of links and documentation for VHDL and the Xilinx tools here.

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

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

  10. Fundamentals of Digital Logic by Brown & Vrane by CertGen · · Score: 4, Informative

    Check out:

    Fundamentals of Digital Logic by Brown & Vranesic

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

    Disclaimer: I work with the authors.

  11. HDL Chip Design by harrkev · · Score: 1

    HDL Chip Design
    Douglas J. Smith
    ISBN 0-9651934-3-8
    Amazon Link.

    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 this book and the Ashenden book compliment each other nicely. The Amazon reviews give it a very mixed bag of opinions. Some love it, others hate it.

    BTW: If anybody has found the perfect VHDL book, I would love to know what it is. The Ashenden book is the standard, but it reads like an encyclopedia.

    --
    "-1 Troll" is the apparently the same as "-1 I disagree with you."
  12. fpga4fun by Solder+Fumes · · Score: 2, Informative

    A great site I've run across is fpga4fun.com. The guy who runs the site has designed and built several really neat little FPGA prototyping boards, and has some great step-by-step tutorials for doing things like generating video signals, reading optical encoders, using Ethernet, etc. You'll probably be sad you got a Spartan IIE just to play around, since he has a great little Altera board for just $50. However I do have a Spartan IIE from Digilent and the code principles are virtually the same.

  13. Can't help you...Beads. by Anonymous Coward · · Score: 2, Funny

    "I'm an old fart TTL designer that loves schematic capture"

    I'm older than that. I use to wire colored bits of sand together.

    1. Re:Can't help you...Beads. by HotNeedleOfInquiry · · Score: 4, Funny

      My grandaddy designed flipflops with steam cylinders and poppet valves. In those days a good designer might be missing two or three fingers...

      --
      "Eve of Destruction", it's not just for old hippies anymore...
  14. WTF by Anonymous Coward · · Score: 0

    WTF is FPGA PDL-based Programming logic ... Good Grief ... This post is like reading the first letter of every sentence of a Shakesperian Tragedy! RORWFATR. FCUK!

  15. Two books I recommend by wildzeke · · Score: 1

    "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 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 In the first book, the author has a slant towards Verilog, but I learned a great deal of good design practices. The second book is thick and is more like a bible for all things FPGA. This book is great if you are new to FPGAs and need to learn what is out there.

  16. Re:Fundamentals of Digital Logic by Brown & Vr by Z0mb1eman · · Score: 1

    It is a must-read book (one of the few course books I didn't regret buying), but perhaps a bit basic for what the story poster seems to be looking for? :)

    --
    ClutterMe.com - easiest site creation on the Net. Just click and type.
  17. MOD THIS UP by Anonymous Coward · · Score: 0

    Have a look at this site - it's got some seriously cool stuff (like a FPGA board that can plug into a PCI slot, with onboard USB and ethernet, etc.

  18. USENET by juglugs · · Score: 2, Informative

    I'd also recommend checking out the usenet group comp.arch.fpga . Most folks on there are a helpful bunch.

    Of course, I also wouldn't recommend Xilinx, but I'm biased - I work for their competition :-)

    --
    This sig is in Spanish when you're not looking....
  19. FPGAs by cybergibbons · · Score: 2, Interesting

    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.

  20. Don't sweat the low level details by thechuckbenz · · Score: 1
    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.

  21. check out websites by Anonymous Coward · · Score: 0

    there are loads of good websites for learning vhdl, verilog, systemc etc, google is your friend! for example:

    http://toolbox.xilinx.com/cgi-bin/forum - for xilinx specific problems
    http://tech-www.informatik.uni-hamburg.d e/vhdl/
    www.opencores.org - heaps of sample code/IP
    www.totallychips.com, a general question and answer forum, albeit doesn't seem that busy

    etc etc

  22. Re:Books aren't any good; don't try to be "advance by Anonymous Coward · · Score: 0

    Hey! Who turned me into a troll? That's all absolutely serious advice from a professional designer whose Xilinx-based products are out there in the shops where you can buy them. I really mean what I said: don't learn to do anything "advanced" with VHDL for Xilinx as it will just crash the tools; stick to basic language constructs.

    Look, I even get less points than someone who says "duh what is an FPGA???". Someone please mod it back up.

  23. FPGA/VHDL/Verilog courses at UCSD Extension by Anonymous Coward · · Score: 0

    UC San Diego Extension offers courses in embedded computer engineering, including FPGA programming, VHDL, and Verilog. Go to http://www.extension.ucsd.edu/Schedule/ and select the Engineering section of the catalog. Some of the courses are offered on-line. Even if you're not interested in taking a course, you could find out which textbooks the instructors are recommending.

  24. A few more sources: by Blowfishie · · Score: 1
    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/

    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.informatik.uni-hamburg.de/vhdl/doc /style_guide/ModelGuide.ps.gz).

    The Xilinx WebPack is a great place to start - you get everything you need to take you from text-edited files to a binary image on one CD (or download from here: http://support.xilinx.com/support/download.htm). It even comes with a (very) cut-down version of Mentor Graphics' ModelSim and Xilinx's own synthesis tool, XST.

    If you use Altera chips, they have a similar offering, called Quartus II Web Edition (http://www.altera.com/products/software/products/ quartus2web/sof-quarwebmain.html)

    Speaking of text editors, (X)Emacs has a great VHDL mode that can beautify your code, create makefiles and manage your projects, available here:http://opensource.ethz.ch/emacs/vhdl-mode.htm l.

  25. Books are good, but don't try "advanced" language by Blowfishie · · Score: 1
    I disagree with books not being any good - every so often, you'll want to do something that is possibly wierd and books can help. If you really hate books, you can always try news://comp.lang.vhdl. The people on that forum are very good and you will get an answer.

    To clarify "advanced" some more: the VHDL language is quite flexible but there is a big difference between writing code that you will synthesise and code that you will not:

    • With non-synthesisable code, you can do whatever the hell you like. Use 'wait' statements, use multipliers and variables all over the place. In fact, using variables is a good thing for fast simulations.
    • For synthesisable code, you should follow a moderately strict set of rules that limit the scope of the language (i.e. you cannot synthesise a statement like 'wait 20 ns'). The European Space Agency's guidelines are a good read here (see my other post).

    If your synthesisable VHDL code is clean and free from "advanced" things as the pervious poster says, you won't have trouble with Xilinx tools. Enumerated types are fine, too - it's how I do all my state machines.

    Disclaimer: I don't work for Xilinx (or Altera).

  26. Acronyms explained by Blowfishie · · Score: 1

    FPGA = Field Programmable Gate Array (a sea of logic gates in a chip that can be set up any way you like).
    VHDL = VHSIC Hardware Description Language (language used to describe how the gates are set up)
    VHSIC = Very High Speed Integrated Circuits