Intel's Formal Verification Experience on the Willamette Development

In some ways, microprocessor design quality has improved tremendously since the’ 70’s and’ 80’s. It was not uncommon in those days to have to respin silicon five or ten times before the device exhibited even basic functionality. Microprocessors were designed by circuit designers directly into schematics, with little pre-silicon functional testing. In the late’ 80’s, register transfer level (RTL) descriptions of CPUs, such as the Intel®486, processor were written, allowing useful pre-silicon validation to be performed. This validation was primarily black-box assembly tests written by humans, and it worked because the CPUs were simple designs that could be controlled and observed directly from such tests. Later CPUs required much more intensive pre-silicon efforts, including random code testing and massive amounts of simulation cycles, to get around human limitations on test writing productivity and insufficient imagination in knowing where to look for bugs. Modern designs (’90’s until present) often run operating systems successfully on first silicon, despite having microarchitectures that are orders of magnitude more complicated than their predecessors.