Product Details
Advanced FPGA Design: Architecture, Implementation, and Optimization

Advanced FPGA Design: Architecture, Implementation, and Optimization
By Steve Kilts

List Price: $105.95
Price: $84.76 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

41 new or used available from $80.74

Average customer review:

Product Description

This book provides the advanced issues of FPGA design as the underlying theme of the work. In practice, an engineer typically needs to be mentored for several years before these principles are appropriately utilized. The topics that will be discussed in this book are essential to designing FPGA's beyond moderate complexity. The goal of the book is to present practical design techniques that are otherwise only available through mentorship and real-world experience.


Product Details

  • Amazon Sales Rank: #44421 in Books
  • Published on: 2007-06-29
  • Original language: English
  • Number of items: 1
  • Binding: Hardcover
  • 352 pages

Editorial Reviews

Review
"Advanced FPGA Design is an excellent and concise reference book that is suitable for engineers already familiar with the fundamentals of FPGA design. (IEEE Signal Processing Magazine, November 2008)

From the Back Cover

A practical FPGA reference that's like an on-call mentor for engineers and computer scientists

Addressing advanced issues of FPGA (Field-Programmable Gate Array) design and implementation, Advanced FPGA Design: Architecture, Implementation, and Optimization accelerates the learning process for engineers and computer scientists. With an emphasis on real-world design and a logical, practical approach, it walks readers through specific challenges and significantly reduces the learning curve. Designed to enhance and supplement hands-on experience, this real-world reference includes:

  • Waveform diagrams and circuit diagrams illustrating each topic

  • Examples that illustrate typical problems in Verilog

  • Case studies that demonstrate real-world applications

  • Chapter-end summaries that reiterate key points

Ideal for engineers and computer scientists who want to take their FPGA skills to the next level and for use as a hands-on reference, this is also an excellent textbook for senior or graduate-level students in electrical engineering or computer science.

About the Author
Steve Kilts is a cofounder and principal engineer at Spectrum Design Solutions, an engineering consulting firm based out of Minneapolis, Minnesota (www.spectrumdsi.com). Mr. Kilts and his team at Spectrum have successfully completed projects for clients ranging from Fortune 100 companies to small start-ups. His FPGA design experience is extensive and includes applications in audio, DSP, high-speed computing and bus architectures, IC testers, industrial automation and control, embedded microprocessors, PCI, medical system design, commercial aviation, and ASIC prototyping. Mr. Kilts has many years of experience making performance trade-offs for FPGA designs targeting high speed, area reduction, and low power. He holds a master of science degree in electrical engineering from the University of Minnesota.


Customer Reviews

From the author5
For your convenience, I am publishing errata on my website: [...]

Background on the book:

After having been exposed to a wide variety of designs in a wide range of industries, I began developing my own arsenal of techniques and heuristics from the combined knowledge of these experiences. When mentoring new FPGA design engineers, I draw my suggestions and recommendations from this experience. Up until now, many of these recommendations have referenced specific white papers and application notes (appnotes) that discuss specific practical aspects of FPGA design. The purpose of this book is to condense years of experience spread across numerous companies and teams of engineers, as well as much of the wisdom gathered from technology-specific white papers and appnotes, into a single book that can be used to refine a designer's knowledge and aid in becoming an advanced FPGA designer.

There are a number of books on FPGA design, but few of these truly address advanced real-world topics in detail. This book attempts to cut out the fat of unnecessary theory, speculation on future technologies, and the details of outdated technologies. It is written in a terse, concise format that addresses the various topics without wasting the reader's time. Many sections in this book assume that certain fundamentals are understood, and for the sake of brevity, background information and/or theoretical frameworks are not always covered in detail. Instead, this book covers in-depth topics that have been encountered in real-world designs. In some ways, this book replaces a limited amount of industry experience and access to an experienced mentor and will hopefully prevent the reader from learning a few things the hard way. It is the advanced, practical approach that makes this book unique.

One thing to note about this book is that it will not flow from cover to cover like a novel. For a set of advanced topics that are not intrinsically tied to one another, this type of flow is impossible without blatantly filling it with fluff. Instead, to organize this book, I have ordered the chapters in such a way that they follow a typical design flow. The first chapters discuss architecture, then simulation, then synthesis, then floorplanning, and so on. This is illustrated in the Flowchart of Contents provided at the beginning of the book. To provide accessibility for future reference, the chapters are listed side-by-side with the relevant block in the flow diagram. The remaining chapters in this book are heavy with examples. For brevity, I have selected Verilog as the default HDL (Hardware Description Language). Xilinx as the default FPGA vendor, and Synplicity as the default synthesis and floorplanning tool. Most of the topics covered in this book can easily be mapped to VHDL, Altera, Mentor Graphics, and so forth, but to include all of these for completeness would only serve to cloud the important points. Even if the reader of this book uses these other technologies, this book will still deliver its value. If you have any feedback, good or bad, feel free to email me at the address listed in the preface.

Great FPGA Reference Book5
This is a great reference book for any level FPGA designer. This book skips past the basics unlike most books on FPGA design and jumps right into advanced topics that practical FPGA designers need to be aware of.

Plenty of discussion on the trade offs that must be faced in FPGA design based on you desired optimization target (speed, size, & power) and discussion of methods to achieve that goal. Lots of practical example code is used to illustrate each topic.

Discussion of simulation techniques and coverage which is becoming a key factor in verifying HDL based designs.

This book contains several topics that I have been waiting to see discussed well in a textbook including floorplanning and the pitfall of using asynchronous resets.

Besides HDL design techniques, the author discusses the PCB level design methodologies that must be used when designing an FPGA into a system. This disscussion is a great complement to this already fine book.

The text that's been needed for too long 5
Books on basic logic design swarm the shelves. So do books on Verilog and VHDL. Why, then is logic design always learned on the job? I mean real, industrial logic design, with all the gritty bits. Kilts asked the question too, and wrote this book in response.

The first three chapters start in on the first three goals (conflicting goals, usually) of logic design: high speed, low power, and minimal area. Speed, of course, includes both throughput and latency - again, goals that often conflict with each other. Examples go well beyond the basic, on up to pipelined AES, a pipelined RISC, IEEE floating point units, and commercial standards for digitized audio, case studies with plenty of room to make the design points that Kilts means to get across.

The book's value comes from its willingness to get into technology specifics, way past the bland idealizations of pure logic design. For example, clock gating doesn't just make a design hard to follow, it often blocks the use of the chip's special purpose clock networks. Those have been engineered beyond belief for low skew under massive loading. You can use other wires as clocks, but you expose yourself to lots of ugly problems when you do. Special logic inputs matter, too, especially dedicated set and reset lines on flops. (I've seen some remarkable uses of the dedicated carry lines between closely coupled LUTs, too, but he doesn't touch on those.)

Of course, there are weak spots. Kilts touches on simulation and testbenches, but only touches. Testbenches and verification have their own texts, though, and exotica like mixed level simulations depend intimately on the specific tools at hand. A few pages, but only a few, presented maddening typos, like the capital-X-sub-i on p.125 where small-x-sub-i would have made sense (non-technical readers: if you made it this far, just trust me, it matters), or the resistor symbol in figure 15.12 where inductance is discussed. Section 8.2, on implementing math.h kinds of functions should simply have been dropped, or maybe replaced with a discussion on range reduction. The intended reader took Calc I and remembers the Taylor expansion. Being familiar is its only advantage, though. It doesn't minimize mean-square or maximum error, doesn't deal with endpoint continuity or differentiability in piecewise approximations (which aren't mentioned either), and has lots more problems. A list of grown-up techniques and references would have been far more helpful. Also, this text simply does not address one of the most pressing and painful issues in real-world logic design: compilation time. Although Kilts mentions floor-planning, he says nothing about how it supports incremental compilation, and notes tradeoff of result quality vs. turnaround in only one offhand phrase, as near as I could tell. Incremental compilation might be a non-Xilinx advantage, though, so forgivable within Kilts's stated limitations.

Kilts more than makes up for that small weakness in other areas, including discussion of parameterization. Because this is Verilog based, it doesn't mention VHDL's architecture configurability. Even in Verilog, though, parameterization appears pervasively in industrial design, especially when reuse matters, and rarely if ever shows its face in basic texts on logic design.

This book assumes that you already know Verilog well enough to build a simple pipelined processor, or at least to follow along closely. It also assumes that you've spent some time with industrial synthesis tools, and can translate from tool-specific advice in this book into the different but equivalent specifics of the tools that you're using. In academic terms, I'd call it a backup text for a third course in logic design, or for a course in something else that uses FPGAs heavily. It's not just for classrooms, though. Beginning professionals stand to benefit from this advice, and even battle-scarred logic designers who still remember 5V power rails might pick up a hint or two.

-- wiredweird