Reference model
Beginner
A simple, separate program that works out the right answers, so a test can check the chip against them.
Novice
A separate, simpler program, written from the specification, that computes what the design should output for the same inputs. For a processor it is often an instruction-set simulator: a program that carries out the same machine instructions in software.
Expert
Usually works on whole operations and ignores exact cycle timing. Its value comes from independence: written from the spec by someone other than the designer, it catches misreadings that the designer would otherwise repeat in both.