FPGARelated.com
Books

Effective Coding with VHDL: Principles and Best Practice (MIT Press)

Ricardo Jasinski 2016

This book addresses an often-neglected aspect of the creation of VHDL designs. A VHDL description is also source code, and VHDL designers can use the best practices of software development to write high-quality code and to organize it in a design. This book presents this unique set of skills, teaching VHDL designers of all experience levels how to apply the best design principles and coding practices from the software world to the world of hardware. The concepts introduced here will help readers write code that is easier to understand and more likely to be correct, with improved readability, maintainability, and overall quality.

After a brief review of VHDL, the book presents fundamental design principles for writing code, discussing such topics as design, quality, architecture, modularity, abstraction, and hierarchy. Building on these concepts, the book then introduces and provides recommendations for each basic element of VHDL code, including statements, design units, types, data objects, and subprograms. The book covers naming data objects and functions, commenting the source code, and visually presenting the code on the screen. All recommendations are supported by detailed rationales. Finally, the book explores two uses of VHDL: synthesis and testbenches. It examines the key characteristics of code intended for synthesis (distinguishing it from code meant for simulation) and then demonstrates the design and implementation of testbenches with a series of examples that verify different kinds of models, including combinational, sequential, and FSM code. Examples from the book are also available on a companion website, enabling the reader to experiment with the complete source code.


Why Read This Book

You should read this book to learn practical, software-inspired coding practices that make VHDL source easier to read, verify, and maintain, and to reduce bugs that arise from ambiguous or sloppy HDL style. It gives concrete guidelines and examples you can apply immediately to improve the quality and reusability of your RTL.

Who Will Benefit

Designers and verification engineers with some VHDL experience who want to produce cleaner, more maintainable, and synthesis-friendly code for FPGA and ASIC projects.

Level: Intermediate — Prerequisites: Basic familiarity with digital logic and fundamental VHDL (entities/architectures, signals, processes, concurrency, and basic synthesis concepts).

Get This Book

Key Takeaways

  • Apply consistent naming, formatting, and file-organization rules to make VHDL code more readable and maintainable.
  • Write synthesizable constructs and recognize language patterns that confuse synthesis or simulation.
  • Use modular design techniques (packages, components, generics) to improve reuse and abstraction.
  • Develop effective testbenches and use assertions to catch functional issues early in simulation.
  • Structure finite-state machines, clocks, and reset strategies for clarity and robustness.
  • Integrate basic verification practices and documentation to support team development and long-term maintenance.

Topics Covered

  1. Introduction and motivation: treating VHDL as source code
  2. Brief VHDL language review and synthesis vs. simulation
  3. Design quality: readability, maintainability, correctness
  4. Naming conventions, formatting, and source organization
  5. Modularity: entities, architectures, packages, and generics
  6. Data types, type design, and strong typing best practices
  7. Processes, concurrency, and coding styles for clarity
  8. Finite state machines: coding styles and pitfalls
  9. Clocking, reset strategies, and timing-aware design
  10. Testbenches, assertions, and simulation-driven verification
  11. Synthesis considerations and synthesis-friendly coding
  12. Refactoring, reuse, and integration into design flows
  13. Appendices: style checklist, common idioms, reference patterns

Languages, Platforms & Tools

VHDLFPGA (general)ModelSim / QuestaGHDLVivado / Xilinx toolsQuartus / Intel tools

How It Compares

More focused on coding practice and maintainability than Peter Ashenden's The Designer's Guide to VHDL (which is a deep language/semantics reference); complements verification-focused titles like Janick Bergeron's book by emphasizing clean RTL and testbench structure rather than exhaustive verification techniques.

Related Books