The localisation of faults in integrated circuits is a challenging problem and a dominating factor in the overall verification effort. Electrical bugs, in particular, surface only in the fabricated prototypes, leading to behaviour deviating from the golden model. Limited observability complicates their localisation: Logging mechanisms such as trace buffers allow us to retain only a limited execution history. A symbolic analysis of the RTL design can find discrepancies between the values recorded in the trace buffer and the intended behaviour. Contemporary MAX-SAT solvers are then able to identify a maximal subset of the RTL design that is consistent with the observed behaviour. The elements in the complement of this subset represent potential locations of the fault. The scalability of contemporary decision procedures dictates the size of a window of execution cycles which we can analyse using symbolic techniques. Current MAX-SAT-based fault localisation techniques require this window to span the fault as well as the error it causes. To address the scalability issues resulting from large window sizes, we propose to slide a smaller window along the temporal axis, constraining it with the information recorded in the trace buffer for the respective execution cycles. In this scenario, the localisation attempt may fail: The limited information provided by the trace buffer may be insufficient to pin down the exact temporal and spatial location of the fault. We propose to use backbones to identify information that can be propagated across sliding windows. The backbone of a symbolic representation of a circuit is the set of signals that are immutable under the given constraints (e.g., the output and trace buffer values). This additional information has several benefits: Firstly, it may be instrumental in locating the fault. Secondly, it may enable a reduction of the size of the of trace buffers and the sliding window. Our preliminary experimental results demonstrate that the use of backbones allows us to reduce the size of the sliding windows or the trace buffer.
[1]
Sean Safarpour,et al.
Automated silicon debug data analysis techniques for a hardware data acquisition environment
,
2010,
2010 11th International Symposium on Quality Electronic Design (ISQED).
[2]
Karem A. Sakallah,et al.
Algorithms for Computing Minimal Unsatisfiable Subsets of Constraints
,
2007,
Journal of Automated Reasoning.
[3]
Melvin A. Breuer,et al.
Digital systems testing and testable design
,
1990
.
[4]
Alan J. Hu,et al.
BackSpace: Formal Analysis for Post-Silicon Debug
,
2008,
2008 Formal Methods in Computer-Aided Design.
[5]
James B. Angell,et al.
Enhancing Testability of Large-Scale Integrated Circuits via Test Points and Additional Logic
,
1973,
IEEE Transactions on Computers.
[6]
Joao Marques-Silva,et al.
Automated Design Debugging With Maximum Satisfiability
,
2010,
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.
[7]
Sean Safarpour,et al.
Improved Design Debugging Using Maximum Satisfiability
,
2007
.
[8]
Sharad Malik,et al.
On Solving the Partial MAX-SAT Problem
,
2006,
SAT.
[9]
Joao Marques-Silva,et al.
Spatial and temporal design debug using partial MaxSAT
,
2009,
GLSVLSI '09.
[10]
Rolf Drechsler,et al.
Using unsatisfiable cores to debug multiple design errors
,
2008,
GLSVLSI '08.
[11]
Subhasish Mitra,et al.
Post-silicon bug localization for processors using IFRA
,
2010,
Commun. ACM.
[12]
Mikolás Janota,et al.
On Computing Backbones of Propositional Theories
,
2010,
ECAI.
[13]
Andreas G. Veneris.
Fault diagnosis and logic debugging using Boolean satisfiability
,
2003,
Proceedings. 4th International Workshop on Microprocessor Test and Verification - Common Challenges and Solutions.
[14]
Doug Josephson,et al.
The good, the bad, and the ugly of silicon debug
,
2006,
2006 43rd ACM/IEEE Design Automation Conference.