An efficient diagnostic test pattern generation framework using boolean satisfiability