FPGARelated.com
Books

Principles of Verifiable RTL Design - A Functional Coding Style Supporting Verification Processes

Lionel Bening ● 2000

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.

Get This Book

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

  1. Introduction: Why verifiable RTL matters
  2. Principles of a functional RTL coding style
  3. Combinational and sequential coding patterns
  4. Synthesis-friendly state machine design
  5. Clocking, resets, and multiple clock domains
  6. Module interfaces, parametrization, and hierarchy
  7. Techniques to aid simulation and accelerate testbenches
  8. Making designs friendly for equivalence checking and formal analysis
  9. Coverage considerations and communicating intent to verification teams
  10. Practical examples and anti-patterns
  11. Style checklist, templates, and appendices

Languages, Platforms & Tools

VerilogVHDL (principles applicable)SystemVerilog (concepts applicable for modern verification flows)FPGA (Xilinx, Intel/Altera)ASIC/standard-cell flowsSimulators (ModelSim, Synopsys VCS, etc.)Equivalence checkersFormal model checkers / property checkersSynthesis tools (vendor flows such as Xilinx Vivado, Intel Quartus)

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.

Related Books