Overview
Assertions are statements used in verification to express properties that should hold during execution, simulation, or proof. Public evidence describes assertions as widely used for functional validation and coverage analysis in both software and hardware designs, where they support runtime error detection and faster error localization. They can also be specialized for security monitoring, such as System-on-Chip vulnerability checks.
Role in hardware verification
In hardware verification planning, assertions are one possible checking mechanism alongside scoreboards. The RISC-V CPU verification evidence states that checking mechanisms for functional correctness should be captured in the verification test plan, and that checks can be implemented as scoreboards, interface assertions, or embedded assertions inside RTL or verification components.
SystemVerilog includes assertions as part of its verification-oriented feature set. The evidence describes SystemVerilog as extending Verilog with features for design, verification, and testbench development, including assertions and randomization for testbench stimulus. It also states that assertions help verify design properties that arise after particular conditions or states. SystemVerilog has a dedicated assertion specification subset, commonly called SystemVerilog Assertion, or SVA, with similarities to Property Specification Language.
Security assertions
Assertions can be used beyond ordinary functional checks. The public SoC-security source states that assertions have been used to monitor common System-on-Chip security vulnerabilities. In that work, security assertion classes enabled runtime checking of vulnerabilities, and the generated security assertions detected all inserted vulnerabilities in the reported experiments, while functional assertions generated by existing assertion-generation techniques missed most of them.
Helper assertions in formal verification
In deductive software verification, assertions may serve as helper proof steps. The public Dafny source reports that the Dafny verifier provides strong correctness guarantees but often requires many manual helper assertions, which can hinder adoption. The same source introduces DAISY, an LLM-based Dafny Assertion Inference System, and reports verification rates of 63.4% for programs with one missing assertion and 31.7% for programs with multiple missing assertions. It also observes that programs can sometimes be verified with fewer assertions than originally present, meaning that recovering every original assertion is not always necessary.
Practical implications
Across the cited contexts, assertions function as compact, executable or provable statements of expected behavior. They are useful when a verification plan must define both what is being checked and how it is checked. In simulation-based hardware verification, they can complement scoreboards and coverage-driven stimulus. In formal verification, they can encode intermediate facts that help a verifier complete a proof.