11
\$\begingroup\$

For software, the book Design Patterns is a set of patterns for doing common things in software and it gives software practitioners common terminology to describe some of the components they need to create.

Does such a book or resource exist for synthesizable RTL or RTL in general? Things like common pitfalls, design trade-offs, deadlock considerations, and interface design.

\$\endgroup\$
4
\$\begingroup\$

Your best bet is probably the Reuse Methodology Manual for System-on-a-Chip Designs by Michael Keating and Pierre Bricaud.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ excellent recommendation. I wasn't aware of this book. \$\endgroup\$ – Ross Rogers May 11 '11 at 18:54
3
\$\begingroup\$

My experience has been that you need to read the docs on one or more of the popular synthesis tools to see which design patterns they accept and what they translate to.

Mostly you need to know: - how to make flops - how to make wires (and not latches) - how to handle reset (sync and/or async)

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ I'm talking about things like "designing a queue with virtual resources", or "crediting schemes and common pitfalls", or "when to break layering abstractions". The best-practices and methods of designing components. Stuff that the veterans of chip design already know. I don't see a lot of practical design guidance in IEEE. Is there an RTLer's "Code Complete" out there? \$\endgroup\$ – Ross Rogers May 11 '11 at 1:05
  • \$\begingroup\$ RTL synthers are "less rigorous" than C compilers. There is some latitude left to the synthesis implementation. That's why it's a good idea to read the doc for the synther you plan on using. For instance, Xilinx's synther is XST, and they have an XST User Guide that describes what design patterns create proper FSMs, how to avoid inadvertently creating latches, stuff like that. \$\endgroup\$ – ajs410 May 11 '11 at 20:12
2
\$\begingroup\$

I found A structured VHDL design method (pdf) interesting and useful, but it only covers a single design pattern.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.