IP Library Granted Patent US 7,421,671
Granted Patent B2
US 7,421,671 · App. 11/469,460 · Granted Sep 2, 2008

Graph pruning scheme for sensitivity analysis with partitions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,421,671
App. No.
11/469,460
Granted
Sep 2, 2008
Kind
B2
Abstract

A method of analyzing a circuit simulation comprising pruning a signal flow graph. Pruning the signal flow graph includes selecting a current vertex from a multiple input vertices in the signal flow graph. Each one of the input vertices is connected to a primary input of the signal flow graph. Determining if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable. If the current vertex includes at least one of a sensitivity parameter or a sensitivity variable then the current vertex is identified as being part of a sensitivity path and is added to a first sub-group of vertices. Pruning the signal flow graph also includes determining if any remaining non-visited neighbor vertices remain to be analyzed. If any remaining non-visited neighbor vertices remain to be analyzed then selecting a neighboring vertex and determining if the selected neighbor vertex is identified as a sensitivity path. If the selected neighbor vertex is identified as a sensitivity path, then the first sub-group of vertices are output into a final pruned signal flow graph. A system for simulating and analyzing a circuit is also disclosed.

Claims (61)

1. A method of analyzing a circuit simulation comprising:

pruning a signal flow graph including:

selecting a current vertex from a plurality of input vertices in the signal flow graph, wherein each one of the plurality of the input vertices is connected to a primary input of the signal flow graph;

determining if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable, wherein if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable then:

identifying the current vertex as being part of a sensitivity path; and

adding the current vertex to a first sub-group of vertices; and

determining if any remaining non-visited neighbor vertices remain to be analyzed, wherein if any remaining non-visited neighbor vertices remain to be analyzed then:

selecting a neighboring vertex; and

determining if the selected neighbor vertex is identified as a sensitivity path, wherein if the selected neighbor vertex is identified as a sensitivity path, then the first sub-group of vertices are output into a final pruned signal flow graph.

2. The method of claim 1 , wherein if the current vertex does not include at least one of a sensitivity parameter or a sensitivity variable then determining if the first sub-group of vertices is empty and if the first sub-group of vertices is empty then adding the current vertex to the first sub-group of vertices.

3. The method of claim 2 , further comprising determining if any remaining non-visited neighbor vertices remain to be analyzed.

4. The method of claim 1 , wherein if no remaining non-visited neighbor vertices remain to be analyzed then the first sub-group of vertices are output into the final pruned signal flow graph.

5. The method of claim 1 , wherein if the selected neighbor vertex is not identified as a sensitivity path, then the neighboring vertex is set as the current vertex.

6. The method of claim 1 , wherein the neighbor vertex includes a second vertex connected to the current vertex with no intervening vertices.

7. The method of claim 1 , wherein the signal flow graph is pruned in a single direction traversal of the signal flow graph.

8. The method of claim 7 , wherein the single direction traversal of the signal flow graph is a forward traversal of the signal flow graph.

9. The method of claim 1 , further comprising:

inputting a netlist to a simulation;

decomposing the netlist;

building an ordered signal flow graph from the decomposed netlist; and

pruning the signal flow graph iteratively for each one of the plurality of input vertices; and

outputting the final pruned signal flow graph.

10. A method of analyzing a circuit simulation comprising:

inputting a netlist to a simulation;

decomposing the netlist;

building an ordered signal flow graph from the decomposed netlist; and

pruning the signal flow graph iteratively for each one of the plurality of input vertices, wherein the signal flow graph is pruned in a single forward direction traversal of the signal flow graph including:

selecting a current vertex from a plurality of input vertices in the signal flow graph, wherein each one of the plurality of the input vertices is connected to a primary input of the signal flow graph;

determining if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable, wherein if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable then:

identifying the current vertex as being part of a sensitivity path; and

adding the current vertex to a first sub-group of vertices; and

determining if any remaining non-visited neighbor vertices remain to be analyzed, wherein if any remaining non-visited neighbor vertices remain to be analyzed then:

selecting a neighboring vertex; and

determining if the selected neighbor vertex is identified as a sensitivity path, wherein if the selected neighbor vertex is identified as a sensitivity path, then the first sub-group of vertices are output into a final pruned signal flow graph; and outputting the final pruned signal flow graph.

11. A circuit simulation and analysis system comprising:

a hardware portion to support the simulation, the hardware including:

a microprocessor;

a storage medium capable of storing data and microprocessor readable instructions including a plurality of applications;

logic for pruning a signal flow graph including:

logic for selecting a current vertex from a plurality of input vertices in the signal flow graph, wherein each one of the plurality of the input vertices is connected to a primary input of the signal flow graph;

logic for determining if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable, wherein if the current vertex includes at least one of a sensitivity parameter or a sensitivity variable then:

identifying the current vertex as being part of a sensitivity path; and

adding the current vertex to a first sub-group of vertices; and

logic for determining if any remaining non-visited neighbor vertices remain to be analyzed, wherein if any remaining non-visited neighbor vertices remain to be analyzed then:

selecting a neighboring vertex; and

determining if the selected neighbor vertex is identified as a sensitivity path, wherein if the selected neighbor vertex is identified as a sensitivity path, then the first sub-group of vertices are output into a final pruned signal flow graph.

12. The system of claim 11 , wherein if the current vertex does not include at least one of a sensitivity parameter or a sensitivity variable then determining if the first sub-group of vertices is empty and if the first sub-group of vertices is empty then adding the current vertex to the first sub-group of vertices.

13. The system of claim 12 , further comprising determining if any remaining non-visited neighbor vertices remain to be analyzed.

14. The system of claim 11 , wherein if no remaining non-visited neighbor vertices remain to be analyzed then the first sub-group of vertices are output into the final pruned signal flow graph.

15. The system of claim 11 , wherein if the selected neighbor vertex is not identified as a sensitivity path, then the neighboring vertex is set as the current vertex.

16. The system of claim 11 , wherein the neighbor vertex includes a second vertex connected to the current vertex with no intervening vertices.

17. The system of claim 11 , wherein the signal flow graph is pruned in a single direction traversal of the signal flow graph.

18. The system of claim 17 , wherein the single direction traversal of the signal flow graph is a forward traversal of the signal flow graph.

19. The system of claim 11 , further comprising:

an input portion;

logic for inputting a netlist to a simulation;

logic for decomposing the netlist;

logic for building an ordered signal flow graph from the decomposed netlist; and

logic for pruning the signal flow graph iteratively for each one of the plurality of input vertices;

an output portion; and

logic for outputting the final pruned signal flow graph.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2006
From: KOROBKOV, ALEXANDER
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018311/0011 →