Patent ID: 7085700

Claim:
A method for debugging of signal behavioral models, comprising the steps of: (1) setting a trial time to start a transient analysis algorithm; (2) initializing Newton-Raphson iteration; (3) linearizing about the previous iteration; (4) choosing a model instance; (5) choosing a sequential statement; (6) executing said sequential statement; (7) testing whether said sequential statement is the last statement; (8) switching to a next statement and going to step (6) if the result of step (7) is false; (9) adding contributions to matrix A and vector b of a matrix equation Ax=b if the result of step (7) is true; (10) testing whether said model is the last model; (11) switching to a next model and going to step (5) if the result of step (10) is false; (12) solving said matrix equation Ax=b if the result of step (10) is true; (13) testing whether the solution of said matrix equation Ax=b converges; (14) moving to a next iteration and going to step (3) if the result of step (13) is false; (15) testing whether the trial timepoint is acceptable if the result of step (13) is true; (16) rejecting said trial timepoint, choosing an alternate timepoint, and moving to step (2) if the result of step (15) is false; (17) testing whether debugging is needed if the trial timepoint is accepted at step (15); (18) testing whether said alternate timepoint is the last time point if the result of step (17) is false; (19) moving to a next timepoint and moving to step (2) if the result of step (18) is false; and (20) finishing said algorithm if the result of step (18) is true; and wherein the last Newton-Raphson iteration of said accepted timepoint is replayed if the result of step (17) is true; and wherein said replay of the last Newton-Raphson iteration comprises the steps of: (21) choosing model instance; (22) choosing sequential statement; (23) testing whether the user is debugging by single stepping through the simulation or a statement breakpoint is encountered at said sequential statement; (24) going interactive and then moving to step (25) if the result of step (23) is true; (25) executing said sequential statement if The result of step (23) is false or preceded by step (24); (26) testing whether a value change breakpoint or a write access breakpoint has occurred on an object of interest to the user; (27) going interactive and then moving to step (28) if the result of step (26) is true; (28) testing whether said sequential statement is the last statement if the result of step (26) is false or preceded by step (27); (29) moving to a next statement and moving to step (23) if the result of step (28) is false; (30) testing whether said model is the last model; (31) moving to a next model and moving to step (22) if the result of step (30) is false; (32) moving to step (18) if the result of step (30) is true.