Circuit simulation using dynamic partitioning and on-demand evaluation
OwnerSanjay Dharinventor
Life of this patent
Estimating the term…
Abstract
An EDA tool is provided with a circuit simulator that simulates circuit operation using dynamic partitioning and on-demand evaluation. The circuit simulator includes a static partitioner, a dynamic partitioner and an evaluation scheduler. The static partitioner pre-forms a number of static partitions for the circuit. During simulation, the dynamic partitioner forms and re-forms a number of dynamic partitions referencing the static partitions. At each simulation time step, the evaluation scheduler determines which, if any, of the dynamic partitions have to be evaluated, and evaluating on-demand only those where evaluations are necessary. In one embodiment, when evaluations are performed, they are performed through matrix solution when accuracy is needed.
Claims26
A computer implemented method for simulating a circuit, the method comprising:
- preprocessing sets of nodes, each set comprising one of a plurality of static partitions of the circuit, to determine an order for the nodes in each set that is particularly suited for dynamic partitioning of a respective static partition;
- and
- forming a plurality of dynamic partitions of the circuit by traversing each of the sets of nodes in the respective order and gathering active sets of nodes.
A computer implemented method for simulating a circuit, the method comprising:
- forming a plurality of dynamic partitions of the circuit, using a plurality of pre-formed static partitions of said circuit;
- at each simulation time step, determining whether the dynamic partitions have to be evaluated, and evaluating only the dynamic partitions that require evaluation, wherein said determination of whether a dynamic partition has to be evaluated comprises determining whether a dynamic partition is in steady state, and, wherein said determination of whether a dynamic partition has to be evaluated further comprises preventing a zero-delay trigger loop from being formed.
An article of manufacture comprising:
- a recordable medium having stored therein a plurality of programming instructions to be executed by a processor, wherein when executed, implement a method comprising:
- forming a plurality of dynamic partitions of the circuit, using a plurality of pre-formed static partitions of said circuit;
- at each simulation time step, determining whether the dynamic partitions have to be evaluated, and evaluating only the dynamic partitions that require evaluation, wherein said determination of whether a dynamic partition has to be evaluated comprises determining whether a dynamic partition is in steady state, and, wherein said determination of whether a dynamic partition has to be evaluated further comprises preventing a zero-delay trigger loop from being formed.
A computer system comprising:
- a storage medium having stored therein a plurality of programming instructions implementing a circuit simulator to simulate a circuit, the circuit simulator including
- a static partitioner to preprocess sets of nodes, each set comprising one of a plurality of static partitions of the circuit, to determine an order for the nodes in each set that is particularly suited for dynamic partitioning of a respective static partition;
- and
- a dynamic partitioner to form a plurality of dynamic partitions of the circuit by traversing each of the sets of nodes in the respective order and gathering active sets of nodes;
- and
- a processor coupled to the storage medium to execute the programming instructions to operate the circuit simulator.
A method for evaluating a dynamic partition of a circuit to simulate the circuit, the method comprising:
- preprocessing sets of nodes, each set comprising one of a plurality of static partitions of the circuit, to determine an order for the nodes in each set that is particularly suited for dynamic partitioning of a respective static partition;
- during simulation, forming dynamic partitions by traversing each of the sets of nodes in the respective order and gathering active sets of nodes;
- and
- evaluating selected ones of the dynamic partitions formed, with each selected dynamic partition being evaluated in an ordered manner through a matrix solution.
A computer system comprising:
- a storage medium having stored therein a plurality of programming instructions;
- and
- a processor coupled to the storage medium to execute the programming instructions to:
- preprocess sets of nodes, each set comprising one of a plurality of static partitions of a simulated circuit, to determine an order for the nodes in each set that is particularly suited for dynamic partitioning of a respective static partition,
- during simulation, form dynamic partitions by traversing each of the sets of nodes in the respective order and gather active sets of nodes, and
- evaluate selected ones of the dynamic partitions formed, with each selected dynamic partition being evaluated in an ordered manner through a matrix solution.
Dependencies are inferred from the claim text.