9 of 9 people found the following review helpful:
5.0 out of 5 stars
Buy This Book for the Engineers Over in FPGA Design!, December 17, 2009
This review is from: Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development (Hardcover)
This book collects together in one place over 300 practical rules for improving the design of FPGAs, ASICs, ASSPs, and SoCs. The upside of following these rules, as well as the seven guiding principles that underly them, is a reduction in the cost and complexity of the device drivers that use these chips.
Too often, in my experience, embedded software engineers must write hardware fixes and workarounds into their device drivers--because the hardware designers didn't follow rules like these. Far too many off-the-shelf chips, such as ASSPs and SoCs, that are developed to be sold in the electronics marketplace are hard to program and poorly documented. And, probably because each has only one customer, most of the FPGA and ASIC designs I've encountered are even harder to use.
Some of the 300 rules are just common sense ideas that conscientious hardware designers may already follow without thinking. Others place demands on the documentation more than on the design. But the remainder show a rarer and more clever type of thinking or are just plain good ideas that should always be followed.
One of my favorite recommendations from the book is to "provide a chip version register that uniquely identifies the chip revision or FPGA programming" (p. 208). Following this one simple rule, allows firmware or device driver upgrades to work with both new and old versions of the chip's register. That kind of backward compatibility is often a must in today's complex and fast-changing products. I've recommended hardware version numbers for many years, but this is the first book I've seen put this best practice into writing.
FPGA designers: If you only decide to follow a few of the 300 rules here, the price of the book will pay off in fewer revisions. Firmware developers: Make a gift of this book to the FPGA designers down the hall and you won't be sorry. I'm confident that this well-written book will serve as the launching pad for important discussions for many engineers working at the hardware-firmware interface.
(Full disclosure: My company has hired the author from time to time to work on engineering projects for our clients; as a result, his bio is currently listed on our website. However, I have no financial stake in the success of this book. I just like what he wrote.)
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
4 of 4 people found the following review helpful:
5.0 out of 5 stars
Review from a hardware designers perspective, August 5, 2010
This review is from: Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development (Hardcover)
This is the book I wish I had read 20 years ago. I was designing Ip cores for ink jet printers
and doing what I thought was a good job of packing all the registers into the smallest possible
footprints and spreading the loads equally over the entire bus when I sat down and reviewed
my design with a software engineer. He pointed out a host of problems that they would have to
deal with because of my register choices. In the product they would have to share my hardware
among several different tasks and would need to create a complex semaphore system to ensure that
those processes didn't interfere with each other. On the other hand by simply splitting up the
registers so that each task only had to access one register then the problem went away.
That is what this book is all about. Not only does it contain a multitude of guidelines taken from
years of lessons learned but it goes on to distill these into basic principles that all designers
should follow when designing hardware. It is an excellent guide for any hardware designer who is not
familiar with modern embedded system software as to what the cpu is really doing with your hardware.It
is a good book for using with design reviews. You may not want to follow every rule but you better be
able to demonstrate that you fully understand any rules that you are breaking.
There is an lengthy chapter on interrupts. Problems here can easily become hard to find nightmares if
you don't have a consistent and well thought out design. This book covers many aspects that less
experienced designers never consider. Everyone knows how to start and stop a process but how many think
about aborting it in a safe and clean manner?
This book also covers the growing need for adding test and debug logic to all components. If something
doesn't work you can't check it out with a logic analyzer like you could in the past. There is nowhere
outside the chip where you can attach any probes. Years ago a hardware designer could exercise their
block with peeks and pokes. Today you need a functioning operating system before a chip can do anything
so the software designers are now in the drivers seat for most test and debug efforts. This book gives
them the ability to find and fix problems
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
5.0 out of 5 stars
Excellent!, June 28, 2011
This review is from: Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development (Hardcover)
Excellent! A must read for ASIC/FPGA designers as well as for firmware developers. Wish every chip designer read this book and implemented its suggestions. That would make firmware so much easier to develop and maintain, and considerably more reliable. For example, the suggestion about using atomic registers to avoid synchronizing thread access is relatively simple to implement in hardware, and makes a huge difference to the firmware developer. Most recommended!
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No