I just finished reading The Art of Hardware Architecture by Mohit Arora. Although this book is primarily targeted at the designers of ASICs / ASSPs / SoCs, quite a few of the topics are also applicable to FPGA designers; for example Chapter 6: The Art of Pipelining and Chapter 7: Handling Endianness.
As an aside, if you aren’t sure what we mean by Endianness, then you really need to read this book (grin). In the meantime, check out the Wikipedia Page on this topic.
This is an unusual book in a number of respects. For example, there are a lot of books out there that purport to talk about design techniques; but when you get right down to the “nitty-gritty”, many of them turn out to be largely theoretical in nature. By comparison, The Art of Hardware Architecture is firmly focused on describing and solving real-world problems using tried-and-true techniques.
Another way in which this book is unusual is that it doesn’t cover as comprehensive a range of design problems as you might expect; instead, Mohit has selected a collection of topics that are (a) of interest to a lot of designers and (b) that he obviously understands very well indeed; he then walks us through these problem areas and discussed the ways in which the issues can be addressed.
The contents list is as follows:
- Chapter 1: The World of Metastability
- Chapter 2: Clocks and Resets
- Chapter 3: Handling Multiple Clocks
- Chapter 4: Clock Dividers
- Chapter 5: Low Power Design
- Chapter 6: The Art of Pipelining
- Chapter 7: Handling Endianness
- Chapter 8: De-bouncing Techniques
- Chapter 9: Design Guidelines for EMC Performance
The more detailed sub-contents for some of these topics go quite deep. For example, the sub-contents list for Chapter 2 consumes an entire page. A couple of these topics immediately grabbed my attention (Pipelining, Endianness, De-bouncing…). I’ve been doing this stuff for years, but I still wanted to see what Mohit had to say about it (which I take as being a good sign).
Take the chapter on De-bouncing Techniques, for example. After describing the behavior of a switch and the different types of switches, Mohit describes a variety of de-bouncing techniques, such as RC De-bouncing, Hardware De-bouncers, Software De-bouncing. These are followed by De-bouncing Guidelines and De-bouncing Multiple Inputs. Some readers will already know this stuff, but the ones who aren’t familiar with this topic will really learn a lot.
One small point is that I really feel like the book could have done with a more thorough proof-read / copy-edit. There are a lot of minor “gotchas”, such as the last word in the very first paragraph, which currently reads “…how to minimize its effort.”
(This should read “…how to minimize its effect.”
). All of the “gotchas” I saw are really minor, but this sort of thing really bugs some readers. (Sorry Mohit, you should have asked me to copy-edit the book for you [grin]).
Actually, while I’m thinking about it, you might be interested to know that Mohit has a dedicated Author website (www.aroramohit.com
) that provides a load of information about himself and his book. Readers can also interact with Mohit via blogs and other social media on this site.
The other negative point is the price of $129, which some will feel is rather steep for what Amazon shows as being 236 pages (strange to relate, there are only 221 pages in my copy, and that includes the index). Having said this (I’ve said this before and I’ll say it again), if being a logic / hardware design engineer is what you do, and if reading this book will make you better at your job, then many folks might feel $129 is a small price to pay…
I’ll tell you what… I have my copy sitting here in front of me… I have more books than I know what to do with, and I’m no longer designing ASICs, so post a comment explaining why owning this book would change your life and why I should give it to you above all others… and whoever makes me laugh (or cry) the hardest can have my copy (I’m up to my ears in alligators fighting fires without a canoe at the moment, so I’ll make my final decision a week or so after I’ve posted this review).
If you found this article to be of interest, visit Programmable Logic Designline
where you will find the latest and greatest design, technology, product, and news articles with regard to programmable logic devices of every flavor and size (FPGAs, CPLDs, CSSPs, PSoCs...).
Also, you can obtain a highlights update delivered directly to your inbox by signing up for my weekly newsletter – just Click Here
to request this newsletter using the Manage Newsletters tab (if you aren't already a member you'll be asked to register, but it's free and painless so don't let that stop you [grin]).