Joachim Schlosser: Development and Verification of fast C/C++ Simulation Models for the Star12 Microcontroller
Of course, if a VC is created, it has to be ensured that it does work correctly. This task is very complex, because there are different chip designs, different development environments and different physical implementations, many different tools. All the discrepancies have to be flattened to produce one final result: the answer to the question if there are any errors to fix. It is quite obvious that there are several methodologies and techniques to verify VCs. They can be split up into four categories (all quotes taken from [VSI01a, p. 2]):
A large overlap is between these categories without doubt. Many processes are shared e. g. between VC and integration verification, although the actual test code will be diverse for the divergent tasks. The VSIA Functional Verification Development Working Group has produced a taxonomy document reflecting the verification classes and their techniques, see [VSI01a]. In the subsequent sections the four main categories and their methodologies will be discussed. For a specific test, usually not only one technique is used but a combination of some of them. Some depend on others whereas some exclude each other.