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

2 of 41 comments (clear)

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

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

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