Tools
--- SMV, CSML and MCB --- -*

Back To Asynchronous Logic

BMC, SMV, CSML, CV and MCB


From: David Long (David.Long@tempura.logi.cs.cmu.edu)
Additions: Andrew Bardsley [new contribution from authors required?]

All the tools on this page can be found at CS CMU's model checking page.

BMC - a bounded model checker.

SMV -- a symbolic model checker for CTL [latest revision 2.4.2]. A BDD-based symbolic model checking program (SMV) that can handle asynchronous systems. It is not specifically geared to asynchronous circuits, but you may find it useful.

CSML is a high level level language for describing finite state machines. There is a compiler which produces a finite state machine as output. There is also a CTL model checker called MCB which accepts the state machine file as input. MCB is an enhanced version of the EMC model checker.

A BDD library with extensions for sequential verification is available. The libraries main features include:

  • Stuff for sequential verification, such as routines for relational product and frontier set simplification
  • Pointer flags for output negation, input negation, and "else negation"
  • Unified result cache for all operations. All operations, including things like multi-variable quantification and simultaneous substitution, cache across calls
  • Routines for node profiles (histograms of the number of nodes at each level) and function profiles (histograms of the number of functions obtainable by restricting variables above each level) for analyzing BDD sizes.
  • Routines for dumping BDDs to files and loading them again
  • Garbage collection via either reference counting or "keep only these"
  • Settable node limit. Operations abort and clean up their intermediates if they cannot finish without the total number of nodes exceeding the limit.
  • Very small and fast. Should be fairly portable across 32-bit machines running UNIX. If you're not running UNIX, you'll have to modify the memory management routines (the package implements a buddy scheme and calls sbrk directly).
CV - CV is a model checker for VHDL

MCB - a non-symbolic model checker for CTL


Last Updated: Tue 14 Jun 2005 09:18:28 GMT
Comments to: bardsley@cs.man.ac.uk