There are three fundamental stages in Assertain: a static stage, a dynamic stage and the verification closure stage. Assertain ABV follows the same scheme, described below:
When a design is first read, customizable static rules are automatically verified on the RTL files. This includes not only common lint such as syntax and semantic checking, but also complex rules about design and coding style, naming conventions, documentation, etc. In addition, automatic formal rule checking can be performed on user’s choice to exhaustively verify the structural consistency of various design constructs such as FSMs, busses, pragmas, arrays, etc. Finally, specific rules target the assertions to give the user a first feedback of the assertion density.
When the static checks are clean, engineers start their dynamic simulation with Assertain ABV monitoring code and assertion coverage information using the industry’s most complete set of metrics. Recorded coverage is displayed in the user-friendly GUI to provide critical feedback on how good the test suite exercises the design, the assertions and the functional coverage points. Tests grading and optimization can then be used to extract the most efficient regression test suite, from the coverage point of view.
When coverage reaches a point close to the sign-off target, Assertain ABV enables users to run coverability analysis on the remaining uncovered items to get a more accurate view of what is coverable and what is not. In order to further speed up the convergence process toward sign-off, the requirement traceability links between specifications, assertions, RTL code and test benches allow functional bugs and coverage holes to be rapidly identified.