Verisym: Verifying Circuits by Symbolic Simulation

Verisym is used to check the functional behavior of circuit designs. It was initially targeted at verifying custom memory designs, which present major difficulties for current production tools, but it is a general-purpose system that has also been applied to arithmetic and control circuits. Verisym has been used to validate custom memory array designs containing up to four million transistors in a few hours on standard hardware. Verisym symbolically simulates the execution of a circuit, given as either a transistor-level schematic or an RTL description, to check a property, given as the stimulus to the circuit and the expected response. It can also simulate two circuit descriptions (of the same or different types), applying the same stimulus to each, and checking that the responses are the same. Simulation is performed by executing a finite-state machine model extracted from the circuit description. A property is checked with a single run of the model (one run of each model for dual simulation). Execution is symbolic, so properties can assert properties about all possible values on particular nodes, and complete coverage of a circuit's behavior is possible. Concrete counter-example runs can be generated as a debugging aid if a property check fails. Verisym is integrated into IBM's Nutshell EDA environment, which provides a common user interface and scripting language across IBM's EDA tools, and allows interoperation between them.

[1]  Arvind Srinivasan,et al.  Verity - A formal verification program for custom CMOS circuits , 1995, IBM J. Res. Dev..

[2]  S. C. Kleene,et al.  Introduction to Metamathematics , 1952 .

[3]  Randal E. Bryant,et al.  COSMOS: a compiled simulator for MOS circuits , 1987, DAC '87.

[4]  Randal E. Bryant,et al.  Simulator for MOS Circuits , 1987, DAC 1987.

[5]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[6]  Randal E. Bryant,et al.  Formal verification of memory arrays , 1997 .

[7]  Randal E. Bryant,et al.  Algorithmic Aspects of Symbolic Switch Network Analysis , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[8]  Bishop Brock,et al.  Introduction to a Formally Defined Hardware Description Language , 1992, TPCD.

[9]  Randal E. Bryant,et al.  Formal verification by symbolic evaluation of partially-ordered trajectories , 1995, Formal Methods Syst. Des..

[10]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[11]  Randal E. Bryant,et al.  Boolean Analysis of MOS Circuits , 1987, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.