This paper presents an efficient and novel method for sequential learning of implications, invalid states, and tied gates. It can handle real industrial circuits, with multiple clock domains and partial set/reset. The application of this method to improve the efficiency of sequential ATPG is also demonstrated by achieving higher fault coverages and lower test generation times.
INTRODUCTIONIt is well-known that the performance of a search process can be significantly enhanced by finding necessary assignments and identifying relations between signals. An effective way of identifying necessary assignments and signal relations is by learning. The use of learned information helps the search engine in recognizing value assignment conflicts sooner and pruning the search space, significantly reducing the number of backtracks. Learning relations in a circuit is typically performed by injecting both logic values on a gate and propagating them backward and forward. This can be done either statically in a pre-processing phase [1,2], or dynamically during the search process [3]. Dynamic learning can extract significantly more implications since the learning is done in the presence of assignments that have already been made, which allows the search space to be pruned further. However, this can be very computationally expensive since it is performed multiple times during the search process. Furthermore, the implications learned are only valid as long as backtracking has not occurred beyond the point where learning was performed. In most learning techniques, justification stops when a decision node is reached. Recursive learning [4] attempts to extract more relations by learning implications which would be valid regardless of the assignment made at the decision node. Furthermore, it can be applied statically or dynamically. However, unless the depth of the recursion is restricted, this technique can be even more expensive than the search process. Note that most learning techniques are performed in the combinational logic of the circuit. Only [5] attempts learning of relations by extending the analysis across sequential elements, but the learning is only performed across two time frames.Learning is used in several areas of computer-aided design, most notably automatic test pattern generation (ATPG) [1][2][3][4][5], redundancy identification [2,6], logic verification [7], and logic optimization [8]. Although this paper focuses on the application of the learning method to ATPG, the proposed method is not restricted to test generation.Sequential ATPG is a much more complex process than combinational ATPG due to signal dependencies across multiple time frames. Extracting such relations can significantly enhance the performance of sequential ATPG as backtracks across multiple time frames are reduced. Furthermore, it has recently been shown [9] that a key indicator of the complexity of sequential ATPG is the density of encoding of the circuit, which is the ratio of the number of valid states to the total number of states. With...