A method for verifying the correctness of the functional behavior of a
processor cooperating with software is provided. Furthermore, the method
allows verification of a CPU having at least a part of its instruction set
implemented with microcode. First, the microcode is independently tested
by using a functional emulator performing in the same way as the processor
hardware according to the processor's functional specification. Then, the
microcode is tested by using a hardware emulator behaving in the same way
as the processor hardware according to the design of the processor's logic
gates. Finally, the microcode is tested against the actual processor
hardware. This method allows the functionality of a newly designed CPU to
be checked in a simulation, even before actual system integration.
Advantageously, many problems in this area, relating to the interaction of
the microcode and the processor hardware can be found before the actual
processor hardware is manufactured. Furthermore, the ongoing verification
of the newly designed CPU using the method according to the present
invention allows detection of problems with the processor hardware at a
relatively early stage.