Method for generating test vectors for characterizing and verifying the operation of integrated circuits
First Claim
1. A method for generating an Eulerian sequence of test vectors for an integrated circuit, the method comprising the steps of:
- (a) generating and storing a list of input states for which the circuit is designed to operate;
(b) generating and storing a list of transitions between said input states, wherein said states correspond to inputs to said integrated circuit, each of said transitions is a transition between two such states and said transitions conform to some constraint restricting the existence of transitions;
(c) defining a graph having vertices that correspond to states in said list of input states and edges that correspond to the transitions in said list of transitions, wherein each such transition is a transition for which a test is desired and wherein each vertex corresponds to an input state to which at least one such transition provides a connection;
(d) determining all sub-graphs of said graph;
(e) determining if said graph is connected, and if said graph is not connected adding at least one transition that meets said constraint and that connects a vertex in one of said sub-graphs with a vertex in another of said sub-graphs;
(f) determine if said graph is connected, and if said graph is still not connected, adding to said graph one or more nodes that correspond to input states having transitions that conform to said constraint condition such that said transitions connect one sub-graph to another sub-graph;
(g) determining if said graph is Eulerian, and if said graph is not Eulerian, adding additional edges corresponding to transitions from said input list of transitions and, if necessary, vertexes corresponding to states from said input list of states to cause said graph to be Eulerian, wherein said transitions conform to said constraint; and
(h) determining a single path through said graph such that each transition in said list of transitions is used precisely once in traversing said path, said Eulerian sequence of test vectors for said integrated circuit being determined by the sequence of vertices on said path and transferring said Eulerian Sequence of test vectors to a testing unit for testing said integrated circuit, wherein said testing unit is selected from a group consisting of a circuit simulator and a chip tester.
4 Assignments
0 Petitions
Accused Products
Abstract
The present invention is a method for operating a data processing system to generate a sequence of test states containing a predetermined set of states and/or transitions for use in testing an integrated circuit or the like. The method minimizes the number of additional states and/or transitions contained in the test sequence while preserving any constraints on the sequence of transitions that may be applied to the circuit to be tested. The present invention operates by defining a graph containing the predetermined set of states and/or transitions. The states are the vertices of the graph and the transitions are edges of the graph. The graph is then augmented if needed with additional states and/or transitions. The additional states and/or transitions assure the existence of an Eulerian Path through the graph. The additional states assure that the graph is connected, and that each vertex in the graph, with the possible exception of two vertices, has the same number of inbound and outgoing transitions. The Eulerian Path is then traced to provide a sequence of states that includes the input list of states and/or transitions.
-
Citations
8 Claims
-
1. A method for generating an Eulerian sequence of test vectors for an integrated circuit, the method comprising the steps of:
-
(a) generating and storing a list of input states for which the circuit is designed to operate; (b) generating and storing a list of transitions between said input states, wherein said states correspond to inputs to said integrated circuit, each of said transitions is a transition between two such states and said transitions conform to some constraint restricting the existence of transitions; (c) defining a graph having vertices that correspond to states in said list of input states and edges that correspond to the transitions in said list of transitions, wherein each such transition is a transition for which a test is desired and wherein each vertex corresponds to an input state to which at least one such transition provides a connection; (d) determining all sub-graphs of said graph; (e) determining if said graph is connected, and if said graph is not connected adding at least one transition that meets said constraint and that connects a vertex in one of said sub-graphs with a vertex in another of said sub-graphs; (f) determine if said graph is connected, and if said graph is still not connected, adding to said graph one or more nodes that correspond to input states having transitions that conform to said constraint condition such that said transitions connect one sub-graph to another sub-graph; (g) determining if said graph is Eulerian, and if said graph is not Eulerian, adding additional edges corresponding to transitions from said input list of transitions and, if necessary, vertexes corresponding to states from said input list of states to cause said graph to be Eulerian, wherein said transitions conform to said constraint; and (h) determining a single path through said graph such that each transition in said list of transitions is used precisely once in traversing said path, said Eulerian sequence of test vectors for said integrated circuit being determined by the sequence of vertices on said path and transferring said Eulerian Sequence of test vectors to a testing unit for testing said integrated circuit, wherein said testing unit is selected from a group consisting of a circuit simulator and a chip tester. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for generating an Eulerian sequence of test inputs for a system, the method comprising the steps of:
-
(a) generating and storing a list of input states for which the system'"'"'s behavior is known, wherein each distinct input to said system is an input state; (b) generating and storing a list of transitions between said input states, wherein each of said transitions is a transition between two such states and said transitions conform to some constraint restricting the existence of transitions, wherein said sequence of test inputs includes each transition in a desired set of transitions and only a minimum number of other transitions; (c) defining a graph having vertices that correspond to states in said list of input states and edges that correspond to the transitions in said list of transitions, wherein each such transition is a transition in said desired set of transitions and wherein the vertices correspond to inputs to said system at opposite ends of such transitions; (d) determining all subgraphs of said graph; (e) determining if said graph is connected by counting the number of subgraphs, and if said graph is not connected, select a first sub-graph, until there is only one sub-graph or until all sub-graphs have been traversed; test each vertex in said first sub-graph for a transition that meets said constraint and that connects said vertex with a vertex in another sub-graph, if such a transition exists, add said transition to said list of transitions, and combine said first sub-graph and said other sub-graph into one sub-graph; (f) determine if said graph is connected by again counting the number of sub-graphs, and if said graph is still not connected, repeat step (e) until either said graph is connected or the number of sub-graphs cannot be further reduced by repeating step (e); (h) determine if said graph is connected, and if said graph is still not connected, locate one or more vertexes that connect one sub-graph to another sub-graph by means of transitions that conform to said constraint condition; (i) determining if said graph is Eulerian, and if said graph is not Eulerian, adding additional transitions from said input list of transitions and, if necessary, states from said input list of states to cause said graph to be Eulerian; and (j) determining a single path through said graph such that each transition in said list of transitions is used precisely once in traversing said path, said Eulerian sequence of test inputs being determined by the sequence of vertices on said path and transferring said Eulerian Sequence of test vectors to a testing unit for testing said integrated circuit, wherein said testing unit is selected from a group consisting of a circuit simulator and a chip tester. - View Dependent Claims (7, 8)
-
Specification