  Recently virtual platforms and virtual prototyping techniques have been
widely applied for accelerating software development in electronics companies.
It has been proved that these techniques can greatly shorten time-to-market and
improve product quality. One challenge is how to test and validate a virtual
prototype. In this paper, we present how to conduct regression testing of
virtual prototypes in different versions using symbolic execution. Suppose we
have old and new versions of a virtual prototype, we first apply symbolic
execution to the new version and collect all path constraints. Then the
collected path constraints are used for guiding the symbolic execution of the
old version. For each path explored, we compare the device states between two
versions to check if they behave the same. We have applied this approach to a
widely-used virtual prototype and detected numerous differences. The
experimental results show that our approach is useful and efficient.
