Deliver to Bolivia
IFor best experience Get the App
Hardware/Firmware Interface Design: Best Practices for Improving Embedded Systems Development
J**N
Review from a hardware designers perspective
This is the book I wish I had read 20 years ago. I was designing Ip cores for ink jet printersand doing what I thought was a good job of packing all the registers into the smallest possiblefootprints and spreading the loads equally over the entire bus when I sat down and reviewedmy design with a software engineer. He pointed out a host of problems that they would have todeal with because of my register choices. In the product they would have to share my hardwareamong several different tasks and would need to create a complex semaphore system to ensure thatthose processes didn't interfere with each other. On the other hand by simply splitting up theregisters 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 fromyears of lessons learned but it goes on to distill these into basic principles that all designersshould follow when designing hardware. It is an excellent guide for any hardware designer who is notfamiliar with modern embedded system software as to what the cpu is really doing with your hardware.Itis a good book for using with design reviews. You may not want to follow every rule but you better beable 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 ifyou don't have a consistent and well thought out design. This book covers many aspects that lessexperienced designers never consider. Everyone knows how to start and stop a process but how many thinkabout 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 somethingdoesn't work you can't check it out with a logic analyzer like you could in the past. There is nowhereoutside the chip where you can attach any probes. Years ago a hardware designer could exercise theirblock with peeks and pokes. Today you need a functioning operating system before a chip can do anythingso the software designers are now in the drivers seat for most test and debug efforts. This book givesthem the ability to find and fix problems
M**H
Another HW perspective
As an FPGA designer I've picked up a lot of best practices from the more experienced engineers I worked with. But even then, having a book that straight up lists how we should design these interfaces and why (from a firmware perspective) is just pure gold. You don't have to blindly follow every recommendation, but there is plenty here to point you in the right direction. Any hardware designer interested in creating cleaner, easier to use, and less bug-prone firmware interfaces will benefit. READ IT. You'll be the firmware folks' best pal. Why would you turn that down? They're nice people.
A**R
Cool book
Cool book written by firmware engineer for hardware engineers which tells how to improve design and iteraction between hardware and firmware teems. I strongly recommend read this book people, who wants to improve design and its product.
B**T
Buy This Book for the Engineers Over in FPGA Design!
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.)
A**L
Excellent!
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!
Trustpilot
Hace 1 mes
Hace 4 días