Effective verification requires engineers to approach problems using a very different way of thinking compared to that normally applied by designers. Specifically, the verification mindset is focused on finding the bugs that are virtually guaranteed to be in the design by stressing protocols, exploring corner cases, and applying a policy of zero tolerance towards design inconsistencies. Designers on the other hand are concerned with constructing components that correctly implement the intended protocol with appropriate performance and without defects. This paper provides examples of common verification problems that are susceptible to more than one approach, and explores solutions that are consistent with a proper verification mindset, while highlighting the risks associated with a more design-centric approach.
( Jeff Montesano , Mark Litterick )