Patent Document ID: 7761828
Application ID: 11840175
Patent Flag: 1

Claim One:
1. A computer-based method of simulating an integrated circuit design in a testbench, the method comprising: read in netlist and timing data for the design; flatten the design, thereby obtaining a flattened design; store a data structure in a computer readable medium, the data structure comprising a plurality of cells, one cell per circuit element of the flattened design, each cell of the plurality of cells comprising timing and connectivity information for the circuit element associated with said each cell, said each cell further comprising an input periphery (N 1 ) control bit, a backtrace (N 2 ) control bit, an exterior (N 3 ) control bit, and an output periphery (N 4 ) control bit; identify, from the information in the data structure, one or more primary inputs of the circuit design, each primary input of the one or more primary inputs having direct interaction with the testbench; forward trace from said each primary input until an edge triggered flip-flop (ETFF) is encountered; for said each primary input, turn on the N 1 control bit of the ETFF encountered in the step of forward tracing from said each primary input, thereby obtaining a plurality of N ETFFs reachable from the primary inputs and having the N 1 control bit turned on; for said each primary input, add the ETFF encountered in the step of forward tracing from said each primary input to a first linked list of ETFFs to be placed in a single subset; select N′, N′ being greater than or equal to N; create a master list S of all ETFFs in the data structure, the master list S comprising a first group of ETFFs of the circuit design and a second group of ETFFs of the circuit design, the first group of ETFFs comprising all ETFFs having N 1 control bit turned off, the second group of ETFFs comprising all ETFFs in the first linked list, each ETFF of the first group preceding all the ETFFs in the second group in the master list S, the master list S comprising M ETFFs; divide the master list into (n−1) primary subsets {S( 1 ), S( 2 ),. .. , S(n−1)} so that S(n−1) comprises all ETFFs of the second group, and remaining primary subsets are created by substantially equal division of ETFFs of the first group; for each ETFF in each primary subset of the (n−1) subsets, first backtrace from an input of said each ETFF in said each primary subset stopping when another ETFF is encountered, wherein N 2 control bit is turned on in every element encountered during first backtracing including said each ETFF in said each primary subset and the encountered ETFF, assigning all circuit elements encountered during the first backtracing to said each primary subset, wherein no circuit element is divided between the primary subsets; for said each primary subset, create a corresponding association set that includes said each primary subset and logic cones of said each primary subset, and create a corresponding testbench subset by identifying all ETFFs in the corresponding association set with the N 1 control bit turned on and logic cones of said all ETFFs in the corresponding association set with the N 1 control bit turned on; create a master association set S* by merging all the association sets; create a master testbench association set T* by merging all the testbench subsets; turn on the N 3 control bit of each exterior ETFF in the circuit design; for said each primary subset, form a corresponding fence subset, wherein the corresponding fence subset comprises all ETFFs of said primary subset with the N 3 control bit turned on, second backtrace from primary inputs of the association set corresponding to said each primary subset until an ETFF is encountered, turning the N 2 and N 4 control bits on for each circuit element encountered during the second backtracing, create a Q subset corresponding to said each primary subset, the Q subset corresponding to said each primary subset comprising all elements of the association set corresponding to said each primary subset with the N 4 control bit on, and create a completion subset corresponding to said each primary subset by union of (1) association set corresponding to said each primary subset and (2) the Q subset corresponding to said each primary subset; for each completion set, create a corresponding netlist module, thereby obtaining a plurality of netlist modules; implement clock (CLK) inputs to the plurality of netlist modules; load each netlist module of the plurality of netlist module onto a different computer of a plurality of networked computers, each networked computer of the plurality of networked computers configured to have access to a different memory and a different circuit simulator; simulate said each netlist module on the computer associated with said each netlist module; merge results of the step of simulating, thereby obtaining merged simulation results; and provide user access to the merged simulation results.