Book: Hardware/Firmware Interface Design

Gary has authored a book with practical concepts that can be used while designing ASICs, ASSPs, SoCs, and FPGAs which will solve many firmware programming issues and help avoid chip respins. It contains over 300 best practices, some of which have been discussed in his newsletters. These best practices help get your products and projects completed sooner and more effectively!

Whether you are primarily a hardware engineer or firmware engineer, this book will help you optimize the hardware/firmware interface within your project or product. Key topics covered include register layout, interrupts, timing and performance, aborts, and errors. Real-world case studies help to solidify the principles and best practices and focus you on cleaner designs, shorter schedules, and better implementations.

Available At

Cover of the book, Hardware/Firmware Interface Design

Before and After

What a hardware/firmware product may have looked like before, compared to what it could look like after following the principles and best practices in the book.

Car with lots of hacked up workaroundsNice, shiny, red car
  • Intel
    Intel Recommended Reading List On Intel's Recommended Reading List, 2011-2014.
  • William N. Robinson
    The book can help engineers minimize delays and glitches in their designs...
    William N. Robinson
    IEEE Computer magazine, May 2010, page 73: Bookshelf
  • Christopher Svec
    ...I think both [hardware engineers and firmware engineers] should read this book.
    Christopher Svec
    Said Svec: Book Review: Hardware/Firmware Interface Design
  • Dennis L Feucht
    I did not have to read too far into this book to realize that the author has extensive experience... is the kind of knowledge useful to analog engineers who work on products [that need to interface] with microcontrollers...
    Dennis L Feucht
    EN-Genius Network: Book Reviews
  • Michael Barr
    ...the price of the book will pay off in fewer [FPGA] revisions. ...this well-written book will serve as the launching pad...
    Michael Barr Buy This Book for the Engineers Over in FPGA Design!
  • Robert L. Glass
    I couldn’t find any fault with it (that’s a testimonial to its common-sense content).
    Robert L. Glass
    The Software Practitioner, March-April, 2014, Volume 24, No. 2, pg. 6.

Table of Contents

  1. Introduction
    • What Is the Hardware/Firmware Interface?
    • What Is a Best Practice?
    • “First Time Right” Also Means …
    • Target Audience
    • Project Life Cycle
    • Case Study
  1. Principles
    • Seven Principles of Hardware/Firmware Interface Design
  1. Collaboration
    • First Steps
    • Formal Collaboration
    • Informal Collaboration
  1. Planning
    • Industry Standards
    • Common Version
    • Compatibility
    • Defects
    • Analysis
    • Post Mortem
  1. Documentation
    • Types
    • Document Management
    • Reviews
    • Content
    • Registers
    • Bits
    • Interrupts
    • Time
    • Errors
    • Information
  1. Superblock
    • Benefits of a Superblock
    • Consolidation
    • I/O Signals
    • Parameterization
  1. Design
    • Event Notification
    • Performance
    • Power-On
    • Communication & Control
  1. Registers
    • Addressing
    • Bit Assignment
    • Data Types
    • Hardware Identification
    • Communication & Control
  1. Interrupts
    • Design
    • Pending Register
    • Enable Register
    • Optional Registers
    • Interrupt Module Review
    • Triggering on Both Edges
    • Using the Interrupt Module
  1. Aborts, etc.
    • Definitions
    • Halts
    • Resets
    • Aborts
  1. Hooks
    • Designing for Hooks
    • Peek …
    • … and Poke
    • Monitor
    • More Hooks
  1. Conclusion
    • Key Points
    • Benefits
    • Seven Principles of Hardware/Firmware Interface Design
    • It Finally Works! Let’s Ship It!
  1. Deleted: Firmware – Deleted from the printed book due to space constraints. HwFwChapterDeleted.pdf.
  2. Appendix A: Best Practices – The best practices are also available electronically. HwFwBestPractices.xls, .csv, or .txt.
  3. Appendix B: Bicycle Controller Specification – Sample document discussed in Chapter 5 available electronically. HwFwBikeBlockTemplate.doc.
  4. Deleted: Appendix C: Using This Book in a University – Deleted due to space constraints. HwFwBookUseInUniversity.pdf.
  5. Appendix D: Glossary
  • Page ix, Contents, “Appendix C: Using This Book in a University … Available at or”
  • Page 4, Section 1.1.1, “that allow the same device driver to work on with any brand.”
  • Page 16, Section 1.6.1, “I had the mono video device driver running on working with it in less than a week.”
  • Page 38, Section 3.2.3, “Getting firmware to run on with the developing chip.”
  • Page 108, Section 5.7, Explanations about interrupt concepts in this section are discussed in detail in chapter 9.
  • Page 130, Section 6.1.3, “Huge amounts of efforts are spent to eek eke out every fraction.”
  • Page 208, Section 8.4, “This section will discuss ways of helping firmware identify the hardware it is running on.”
  • Page 229, Section 9.1.3, “common in old X86 platforms, and is now part of the X86.”
  • Page 231, Section 9.1.5, “and the CPU that latched latches the source signal assertion.”
  • Page 273, Section 10.4.3, “Unity mono video block received receives an abort command.”
  • Page 283, Section 11.2.3, “A DMA controller is often use used by blocks.”
  • Page 299, Section 11.6.1, The last sentence refers to a chapter that was removed because of space constraints. It is available here HwFwChapterDeleted.pdf.