Programming Books C Java PHP Python Learn more Browse Programming Books

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $3.33 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Practical FPGA Programming in C [Paperback]

David Pellerin , Scott Thibault
2.2 out of 5 stars  See all reviews (4 customer reviews)

List Price: $84.99
Price: $61.42 & FREE Shipping. Details
You Save: $23.57 (28%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Temporarily out of stock.
Order now and we'll deliver when available. We'll e-mail you with an estimated delivery date as soon as we have more information. Your account will only be charged when we ship the item.
Ships from and sold by Gift-wrap available.
Free Two-Day Shipping for College Students with Amazon Student

Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

May 2, 2005 0131543180 978-0131543188 1St Edition
During the past few years of tech sector economic decline,which has touched the EDA/semiconductor industries, two companies have had consistent double digit growth. They are Xilinx and Altera. Their business is FPGA design. Advances in FPGA technologies have made FPGA design a low cost alternative to very expensive unreconfigurable ASIC design.

Editorial Reviews

From the Back Cover

C-based techniques for building high-performance, FPGA-accelerated software applications

Circuits, Devices, and Systems

C-based Techniques for Optimizing FPGA Performance, Design Flexibility, and Time to Market

Forward written by Clive "Max" Maxfield.

High-performance FPGA-accelerated software applications are a growing demand in fields ranging from communications and image processing to biomedical and scientific computing. This book introduces powerful, C-based parallel-programming techniques for creating these applications, verifying them, and moving them into FPGA hardware.

The authors bridge the chasm between "conventional" software development and the methods and philosophies of FPGA-based digital design. Software engineers will learn to look at FPGAs as "just another programmable computing resource," while achieving phenomenal performance because much of their code is running directly in hardware. Hardware engineers will master techniques that perfectly complement their existing HDL expertise, while allowing them to explore design alternatives and create prototypes far more rapidly. Both groups will learn how to leverage C to support efficient hardware/software co-design and improve compilation, debugging, and testing.

  • Understand when C makes sense in FPGA development and where it fits into your existing processes

  • Leverage C to implement software applications directly onto mixed hardware/software platforms

  • Execute and test the same C algorithms in desktop PC environments and in-system using embedded processors

  • Master new, C-based programming models and techniques optimized for highly parallel FPGA platforms

  • Supercharge performance by optimizing through automated compilation

  • Use multiple-process streaming programming models to deliver truly astonishing performance

  • Preview the future of FPGA computing

  • Study an extensive set of realistic C code examples

About the Web Site

Visit to download fully operational, time-limited versions of a C-based FPGA design compiler, as well as additional examples and programming tips.

© Copyright Pearson Education. All rights reserved.

About the Author

Author Bio

David Pellerin is president and founder of Impulse Accelerated Technologies, a firm that serves systems designers who want to use FPGAs for hardware-based software acceleration and fast prototyping of mixed hardware/software systems. His Prentice Hall PTR books include VHDL Made Easy, Practical Design Using Programmable Logic, Digital Design Using ABEL, and Electronic Design Automation for Windows. Scott Thibault is president and founder of Green Mountain Computing Systems, developers of custom and OEM software that leverages advanced HDL and C-to-RTL expertise to improve time-to-market. Dr. Thibault holds a Ph.D. in computer science from the University of Rennes.

© Copyright Pearson Education. All rights reserved.

Product Details

  • Paperback: 464 pages
  • Publisher: Prentice Hall; 1St Edition edition (May 2, 2005)
  • Language: English
  • ISBN-10: 0131543180
  • ISBN-13: 978-0131543188
  • Product Dimensions: 1 x 7.1 x 9.2 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 2.2 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Best Sellers Rank: #1,287,563 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

2.2 out of 5 stars
2.2 out of 5 stars
Share your thoughts with other customers
Most Helpful Customer Reviews
44 of 45 people found the following review helpful
3.0 out of 5 stars Very mixed December 7, 2005
Let's start on the positive side. This book is very current - it mentions the recent Cray and SGI FPGA accelerators as part of the reason for programmers to learn about FPGAs. It goes through some interesting and practical examples, showing how a C program can be used to specify the synthesizable logic for triple DES, including time/space tradeoffs. It gives some hardware awareness, without trying to turn a programmer into an EE. Best of all, it shows practical use of Impulse C, an ANSI C extension that supports pragma-driven pipelining and parallelism. Impulse C, by the way, seems to have an exceptional pedigree. It seems to descend from Maya Gokhale's work at Los Alamos, and there isn't much better parentage for such a product to claim.

There are some problems with this book, however. It relies overwhelmingly on the Impulse C product, to the exclusion of Handel C and a flock of other products - it's really an Impulse C how-to. That's not necessarily a bad thing, but it's not what I assumed from the title. It emphasizes streaming data, like radar input, video, audio, or all the other traditional DSP applications of FPGAs. Streaming is good, but a poor match to the Cray and SGI coprocessors.

The biggest problems in this book come from the basic approach of trying to turn an FPGA into a CPU. Back when iron was first introduced for bridge-building, iron beams were built to imitate wooden ones. The result was a wooden bridge made of iron. It worked, but used far more material than was needed for the job, and got relatively poor performance from the material. Ditto what happens when FPGA logic goes into a soft CPU. The result is a little like the classic "Fortran program written in C," only worse.
Read more ›
Was this review helpful to you?
25 of 25 people found the following review helpful
4.0 out of 5 stars Clarification of previous review April 4, 2006
By Stephen
As a reader of this book and a user of Impulse C I feel that I should clarify some of the previous reviewer's comments. While "weirdweird" is clearly knowledgeable about FPGAs, he (or she) is confused about the programming and execution model used by Impulse C.

Impulse C is an extension to the traditional ANSI C programming language that permits development of FPGA hardware by writing C. Like any C-to-gates development tool, the resulting hardware design is inferior to what an experienced hardware designer could produce. However, many feel that the greatly reduced development time and effort of a C development environment is worth the performance trade-off. In many cases the resulting hardware runs significantly faster than software programs on a PC.

The CoDeveloper tools that come with Impulse C (they are not included with the book) compile C to FPGA hardware and, in the process, extract multiple types of parallelism. Contrary to what "weirdweird" says, the resulting designs do not suffer from traditional processor bottlenecks as the resulting designs are nothing like a processor. Hardware synthesized from Impulse C programs consists of a datapath controlled by a Finite State Machine, the same structure used in most hardware designs and one that is not found in processors.

In addition to any parallelism the user specifies through stream declarations, the Impulse C compiler can also perform loop unrolling and other optimizations to perform multiple operations in parallel. The tools also permit the simultaneous use of multiple memories internal to the FPGA, eliminating the "memory wall" to which the previous reviewer refers.

"weirdweird" is correct that this book focuses solely on Impulse C, so readers without potential access to the Impulse C tools might want to consider other choices.
Comment | 
Was this review helpful to you?
4 of 4 people found the following review helpful
1.0 out of 5 stars Don't be fooled by the title February 4, 2009
A more appropriate title of the book should include Impulse C! Without Impulse C, one can forget about FPGA programming in C. Had I read the review by "Wiredweird", I would have not bought this book. This is a useless book without Impulse C. I wonder if this is a clever way to advertise the product Impulse C.
Comment | 
Was this review helpful to you?
1 of 1 people found the following review helpful
1.0 out of 5 stars Misleading Title February 17, 2012
We ended up not buying this book after evaluating the information on the impulse C website as we felt that a pattern of misleading customers emerged. First, the book's title is misleading in that it does not make clear that the book is an accompaniment for a single product (Impulse C) and of no interest without that product. Secondly, when trying to find out more about the product the book is intended to promote, again vital information is simply left out. Nowhere does the website say for example what operating systems the development tools can run on and what the system requirements are. It appears customers are supposed to buy the toolchain without knowing if their infrastructure is suitable or not. We decided that regardless of whether this is deliberate or oversight, we don't want to do business with the author and his company. Caveat emptor!
Comment | 
Was this review helpful to you?
Search Customer Reviews
Search these reviews only

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more


Topic From this Discussion
C to gates performance Be the first to reply
Have something you'd like to share about this product?
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for Similar Items by Category