Executable specification
Beginner
A computer program that behaves the way the chip is supposed to, so people can try out the idea before the chip exists.
Novice
A program, in a spreadsheet, C/C++, Python or SystemC, that captures what the chip must compute or how fast it must do it. Unlike prose, it gives one unambiguous answer for any input.
Expert
Comes in layers: power-performance-area spreadsheets, a reference model of the algorithms, a cycle-approximate performance model, and a transaction-level virtual platform that runs real software. The reference model later becomes the golden model that verification compares the design against.