Patent ID: 6961690

Claim:
A method of creating a behavioral model to allow non-atomic behavioral simulation of process blocks in an electronic design, the method comprising: receiving hardware design code describing a process block; converting the hardware design code describing the process block to an assignment decision diagram (ADD) representation that is used by a simulator to simulate behavior of the process block wherein the assignment decision diagram representation comprises: an assignment value portion representing the computation of values that are to be assigned to a storage unit of an output port, wherein the values are computed from current contents of storage units, input ports, or constants provided to the ADD; an assignment condition portion connected as a data flow path representing the computation of a particular condition such that the end product of the condition computation is a binary value that evaluates to either TRUE or FALSE; an assignment decision node (ADN) that selects a value from a set of input values computed by the assignment value portion based upon the conditions computed by the assignment condition portion; and an assignment target portion that is provided with the selected value from the corresponding ADN corresponding to the true ADN condition; and annotating the ADD representation of the process block with one or more control nodes suitable for setting of a state within the process block wherein when a particular control node is encountered, a state within the process block associated with the control node can be directly observed thereby eliminating an atomic nature of the process block so as to provide a non-atomic analysis of the behavioral model wherein the control node is selected from the group comprising a query control node used to represent a conditional branch in a control flow, an evaluation/assignment control node used to represent an assignment operation, a null control node used as a place holder, and a suspend control node used to suspend execution of the process block wherein the suspend control node is selected from the group comprising an event type suspend control node used to suspend execution of the process block pending a pre-determined future event and a delay type suspend control node used to suspend execution of the process block for a for a specific length of time.