Principles of Verifiable RTL Design - A Functional Coding Style Supporting Verification Processes
Principles of Verifiable RTL Design: A Functional Coding Style Supporting Verification Processes in Verilog explains how you can write Verilog to describe chip designs at the RT-level in a manner that cooperates with verification processes. This cooperation can return an order of magnitude improvement in performance and capacity from tools such as simulation and equivalence checkers. It reduces the labor costs of coverage and formal model checking by facilitating communication between the design engineer and the verification engineer. It also orients the RTL style to provide more useful results from the overall verification process.
The intended audience for Principles of Verifiable RTL Design: A Functional Coding Style Supporting Verification Processes in Verilog is engineers and students who need an introduction to various design verification processes and a supporting functional Verilog RTL coding style. A second intended audience is engineers who have been through introductory training in Verilog and now want to develop good RTL writing practices for verification. A third audience is Verilog language instructors who are using a general text on Verilog as the course textbook but want to enrich their lectures with an emphasis on verification. A fourth audience is engineers with substantial Verilog experience who want to improve their Verilog practice to work better with RTL Verilog verification tools. A fifth audience is design consultants searching for proven verification-centric methodologies. A sixth audience is EDA verification tool implementers who want some suggestions about a minimal Verilog verification subset.
Principles of Verifiable RTL Design: A Functional Coding Style Supporting Verification Processes in Verilog is based on the reality that comes from actual large-scale product design process and tool experience.
Why Read This Book
You will learn how to write RTL in Verilog so that your code cooperates with verification tools and teams, dramatically improving simulation, equivalence checking, and formal-analysis throughput. The book gives pragmatic, style-driven guidance that makes designs easier to verify, faster to simulate, and less error-prone in synthesis—so you spend less time chasing bugs and more time delivering features.
Who Will Benefit
RTL designers and verification engineers with some Verilog experience who want to produce synthesis-friendly, verification-friendly designs for FPGA or ASIC projects.
Level: Intermediate — Prerequisites: Familiarity with digital logic and RTL concepts, working knowledge of Verilog (module, always blocks, nets/registers) and basic simulation workflows; basic understanding of synthesis and verification concepts is helpful.
Key Takeaways
- Write RTL in a functional, synthesis-friendly style that yields clearer intent and fewer verification surprises
- Structure modules and state machines to simplify equivalence checking and formal proofs
- Apply concrete coding patterns that reduce simulation time and make coverage closure easier
- Avoid common verification pitfalls (unintentional latches, races, ambiguous resets) through disciplined RTL idioms
- Design testbench-friendly interfaces and leverage assertions and checkers to catch specification mismatches early
Topics Covered
- Introduction: Why verifiable RTL matters
- Principles of a functional RTL coding style
- Combinational and sequential coding patterns
- Synthesis-friendly state machine design
- Clocking, resets, and multiple clock domains
- Module interfaces, parametrization, and hierarchy
- Techniques to aid simulation and accelerate testbenches
- Making designs friendly for equivalence checking and formal analysis
- Coverage considerations and communicating intent to verification teams
- Practical examples and anti-patterns
- Style checklist, templates, and appendices
Languages, Platforms & Tools
How It Compares
Compared with Samir Palnitkar's Verilog HDL (which focuses on language and syntax), Bening emphasizes coding style that directly supports verification; compared with Janick Bergeron's verification texts, this book is more design-centric—teaching designers how to write RTL that eases the verifier's job.











