Equivalence checking with SMASH
Specification-driven verifications |
Top-down and Bottom-up |
Selective modeling |
Template checking
Equivalence checking for multi-level verifications
With the ever increasing complexity of integrated circuits and the design of systems, whether mixed-signal or multi-domain, multi-level modeling is the only solution to reduce cycle-time of top-level simulations. One of the major difficulties for silicon IP designers and application engineers performing multi-level modeling is ensuring that models of different levels are equivalent with respect to a specific subset of the specification.
SMASH innovates by offering features for a streamlined equivalence checking user experience!
DEFINITION of Equivalence Checking
In the domain of circuit design, a specification describes the characteristics, or properties, that a design must meet along with the description of the tests that must be applied to verify these requirements. Models of a design are considered to be equivalent when they meet the same subset of a specification.
Conformity of effects or behaviors is specified using templates which define the “border”. A template generally defines the minimum and/or maximum admissible values, in time domain, frequency domain… but can be more complex (such as the eye diagram). The template is the reference! It can be another model, measurement data or values extracted from a datasheet. A template implies an associated measurement method. If the model respects the templates for a selected subset of the specification and a given accuracy, the equivalence is proven.
KEY BENEFITS of Equivalence Checking
-
Use of different abstraction level models for selective multi-level verifications
-
Automatic and dynamic comparison between
-
Easy identification of template violations thanks to visual display and warning reports
-
Simplified testbench validation and reuse by integrating the specification requirements directly in the testbench
KEY FEATURES for multi-level equivalence checking in SMASH
-
VEC Files for logic signals (HDL, SPICE)
-
.measure directive for analog signals (HDL-AMS, SPICE) and analog results (FFT, Jitter…)
.measure directive
The .measure directive is generally used by analog and mixed-signal designers for characterization purposes. In SMASH, this directive can also be used for equivalence checking by comparing a measure result to a reference template.
In this case, the reference template can be specified from:
For each performance, a margin (min / max) is expressed to define the template.
Application example
Top-down equivalence checking between an HDL-AMS behavioral model of an amplifier and its SPICE implementation
Template = behavioral model +/- 30dB
No violation is detected!
The SPICE implementation is equivalent to the behavioral model with respect to the amplifier transfer function
What happens with a more constrained template?
Template = behavioral model +/- 10dB
The template is violated!
The SPICE implementation and the behavioral model are not equivalent with respect to the amplifier transfer function.
The SPICE implementation must be improved or the specification requirements must be relaxed if they are too strict!
VEC files
VEC Files are traditionally used to generate voltage supply (PWL, pulse). In SMASH, their use has been extend to equivalence checking. They can detect template violations and glitches.
In a top-down approach:
-
the vector file serves as specification; both the SPICE implementation and the behavioral logic model must have outputs equivalent to the expected outputs of the vector file,
-
the logic model serves as specification and is used to generate the reference vector file. Simulation of the SPICE implementation must have equivalent outputs.
In a bottom-up approach:
Application example
Equivalence checking between two transistor-level implementations of a logic function (clock tree generator) developed for migration purpose

A glitch is detected!
The second implementation generates a glitch which can be disastrous when used in a clock tree.
Both implementations are not equivalent and the second one must be improved!
Attend the Behavioral Modeling Prerequisites Training
to learn how to create models and perform equivalence checking
|