Hardware validation is essential when the hardware is to be used in complex systems that are used in cost-critical and life-critical applications motivates the need for a systematic approach to verify functionality. Hardware verification complexity has increased to the point that it dominates the cost of design. In order to manage the complexity of the problem, we have to investigate validation techniques, in which functionality is verified by simulating (or emulating) a system
description with a given test input sequence.
However, formal techniques suffer from high complexity, so the verification of large designs using formal techniques alone is often intractable. The complexity of validation can be made tractable by using a test sequence of reasonable length, and the degree of certainty provided can become arbitrarily close to 100%.
A practical difficulty in the validation of large hardware systems is choosing the proper design abstraction level which provides a trade off between simulation complexity and error modelling accuracy. In practice, validation is performed at all levels of abstraction from behavioural down to layout. Behavioural hardware description languages, such as VHDL and Verilog, have only been fully accepted by industry for less than a decade, and research in behavioural validation is still developing.
Growing advances in VLSI technology have led to an increased level of complexity in current hardware systems. Late detection of design errors typically results in higher costs due to the associated time delay as well as loss of production.
Thus it is important that hardware designs be free of errors. Formal verification has become an increasingly important technique towards establishing the correctness of hardware designs. In this article we survey the research that has been done in this area, with an emphasis on more recent trends.
We have to present a classification framework for the various methods, based on the forms of the specification, the implementation, and the proff method. This framework enables us to better highlight the relationships and interactions between seemingly different approaches.