In this paper we describe our experience in reproducing synchronization bugs using a model checker. We demonstrate how model
checking technology can be utilized for more than just model checking. Synchronization bugs are caused by physical phenomena
which cause the actual behavior of a chip to be different than predicted according to the functional model. Traditionally,
verification methods such as dynamic simulation and model checking use a synchronous model, whereas the actual behavior is
according to an asynchronous model. Because of this, synchronization bugs are very hard to trace. Using a model checker we
were able to create a model closer to the actual behavior, and retrace many synchronization bugs. Because model checking allows
us to introduce non-determinism when checking a VLSI design, and because of its ability to produce counter examples for specifications
that fail, we find that model checking is the ideal tool for reproducing synchronization bugs.