Introduction During the last decades, hardware-design languages like Verilog and VHDL have become very common for designing digital circuits. These languages allow designers to specify and test the behavior of circuits before they are produced. This helps to avoid incorrect designs and saves money, providing that the designs are rigorously tested. If faulty behavior is identified through verification, the location of the error in the source code is of interest. Finding this root cause of the misbehavior is not always as easy as expected. The source code is usually huge. Furthermore, it is often written by one team of hardware designers and tested by another team. Because hardware designs are becoming ever more complex, verification is becoming a bottleneck in the design flow. Hence, verification and fault localization are both important issues for hardware designers and their companies. Both are imperative for ensuring quality of the hardware designs, reducing time to market, and avoiding costly re-designs. As a consequence, they reduce the overall design costs.
[1]
Raymond Reiter,et al.
A Theory of Diagnosis from First Principles
,
1986,
Artif. Intell..
[2]
Markus Stumptner,et al.
Diagnosing tree-structured systems
,
2001,
Artif. Intell..
[3]
Markus Stumptner,et al.
Model-Based Diagnosis of Hardware Designs
,
1999,
Artif. Intell..
[4]
Rina Dechter,et al.
Diagnosing Tree-Decomposable Circuits
,
1995,
IJCAI.
[5]
Kavita Ravi,et al.
Efficient Decision Procedures for Model Checking of Linear Time Logic Properties
,
1999,
CAV.
[6]
Russell Greiner,et al.
A Correction to the Algorithm in Reiter's Theory of Diagnosis
,
1989,
Artif. Intell..
[7]
Franz Wotawa.
Debugging Hardware Designs Using a Value-Based Model
,
2004,
Applied Intelligence.
[8]
Kenneth L. McMillan,et al.
Symbolic model checking
,
1992
.