US2002170037A1PendingUtilityA1

Apparatus and method for controlling event ordering in a mixed- language simulator

Priority: Mar 3, 2001Filed: Mar 3, 2001Published: Nov 14, 2002
Est. expiryMar 3, 2021(expired)· nominal 20-yr term from priority
G06F 30/33
25
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An apparatus and method are provided for controlling event ordering in a mixed-language simulator that utilizes at least one model written in a source code language and at least one model written in a hardware description language (HDL). All event ordering for performing source code model interface tasks is controlled through the use of HDL constructs. The present invention comprises logic that is configured to generate a list of actions to be performed for each occurrence of a trigger event, and to map the list of actions for each trigger event being mapped into a list of objects. The objects are listed in an order that is consistent with the order in which statements appear in the HDL source. The ordering of the objects in the list controls the order of event processing of all source code model interface tasks.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
         1 . An apparatus for controlling event ordering in a mixed-language simulator, the mixed-language simulator utilizing at least one model written in a source code language and at least one model written in a hardware description language (HDL), the apparatus comprising: 
 logic configured to generate a list of actions to be performed for each occurrence of a trigger event, the list of actions for each trigger event being mapped by said logic into a list of objects, the objects being listed in an order that is consistent with an order in which associated HDL objects are listed, and wherein the ordering of the HDL objects in the list controls an order of event processing of all source code model interface tasks.    
     
     
         2 . The apparatus of  claim 1 , wherein the list of objects is configured by said logic to allow objects associated with trigger events corresponding to concurrent times to be executed concurrently during simulation.  
     
     
         3 . The apparatus of  claim 1 , wherein the list of objects is a tree structured list having branches of execution, and wherein at least two branches of execution are in parallel with each other, and wherein objects associated with trigger events that correspond to concurrent times are comprised in parallel branches of execution in the tree structured list.  
     
     
         4 . The apparatus of  claim 1 , wherein the list of objects is a linear list and wherein the objects comprise block grouping statements and at least first and second event objects each comprising executable statements that are configured within the linear list by said logic to be executed in parallel, said first and second objects being associated with events corresponding to concurrent times.  
     
     
         5 . The apparatus of  claim 4 , wherein the linear list is traversed by said logic to identify objects corresponding to enabled deferred actions and objects corresponding to non-enabled deferred actions, and wherein said logic removes anyobjects corresponding to non-enabled deferred actions from the list.  
     
     
         6 . The apparatus of  claim 3 , wherein the tree structured list is traversed by said logic to identify objects corresponding to enabled deferred actions and objects corresponding to non-enabled deferred actions, and wherein said logic removes any objects corresponding to non-enabled deferred actions from the tree structured list.  
     
     
         7 . The apparatus of  claim 1 , wherein when a trigger event occurs, an action callback function is called by said logic, and wherein said logic executes the action callback function to traverse the list of objects in accordance with a recursive algorithm to transform the list of objects into a tree structured list that comprises a list of enabled deferred action objects and a list of non-enabled deferred action objects, and wherein said logic removes any non-enabled deferred action objects from the tree structured list in order to optimize simulator performance.  
     
     
         8 . The apparatus of  claim 3 , wherein said logic builds the tree structured list of objects using a “next concurrent” pointer and a “next sequential” pointer to ensure that objects comprised in the tree structured list are processed in a proper order and to ensure that only actions of objects that are listed on a same branch of execution are capable of blocking actions of objects that are listed in subsequent order on said same branch of execution.  
     
     
         9 . A method for controlling event ordering in a mixed-language simulator, the mixed-language simulator utilizing at least one model written in a source code language and at least one model written in a hardware description language (HDL), the method comprising: 
 generate a list of actions to be performed for each occurrence of a trigger event;    mapping the list of actions for each trigger event into a list of objects that are listed in an order that is consistent with an order in which trigger events occur, and wherein the ordering of the objects in the list controls an order of event processing of all source code model interface tasks.    
     
     
         10 . The method of  claim 9 , wherein the list of objects is configured to allow objects associated with trigger events corresponding to concurrent times to be executed concurrently during simulation.  
     
     
         11 . The method of  claim 9 , wherein the list of objects is a tree structured list having branches of execution, and wherein at least two branches of execution are in parallel with each other, and wherein objects associated with trigger events that correspond to concurrent times are comprised in parallel branches of execution in the tree structured list.  
     
     
         12 . The method of  claim 9 , wherein the list of objects is a linear list and wherein the objects comprise block grouping statements and at least first and second event objects each comprising executable statements that are configured within the linear list by said logic to be executed in parallel, said first and second event objects being associated with events corresponding to concurrent times.  
     
     
         13 . The method of  claim 12 , further comprising the steps of: 
 traversing the linear list and identifying objects that correspond to enabled deferred actions and objects that correspond to non-enabled deferred actions; and    removing any objects from the linear list that correspond to non-enabled deferred actions to thereby optimize performance of the simulator.    
     
     
         14 . The method of  claim 11 , further comprising the steps of: 
 traversing the tree structured list and identifying objects in the tree structured list that correspond to enabled deferred actions and objects corresponding to non-enabled deferred actions; and    removing any objects from the tree structured list that correspond to non-enabled deferred actions.    
     
     
         15 . The method of  claim 11 , wherein the tree structured list of objects includes a “next concurrent” pointer and a “next sequential” pointer that ensures that objects comprised in the tree structured list are processed in a proper order and that ensures that only actions of objects that are listed on a same branch of execution are capable of blocking actions of objects that are listed in subsequent order on said same branch of execution.  
     
     
         16 . A computer program for controlling ordering of event processing in a mixed-language simulator, the mixed-language simulator utilizing at least one model written in a source code language and at least one model written in a hardware description language (HDL), the computer program being embodied on a computer readable medium, the computer program comprising: 
 a first code segment, the first code segment generating a list of actions to be performed for each occurrence of a trigger event;    a second code segment, the second code segment mapping the list of actions for each trigger event into a list of objects that are listed in an order that is consistent with an order in which trigger events occur, and wherein the ordering of the objects in the list controls an order of event processing of all source code model interface tasks.    
     
     
         17 . The computer program of  claim 16 , wherein the list of objects is configured to allow objects associated with trigger events corresponding to concurrent times to be executed concurrently during simulation.  
     
     
         18 . The computer program of  claim 16 , wherein the list of objects is a tree structured list having branches of execution, and wherein at least two branches of execution are in parallel with each other, and wherein objects associated with events that correspond to concurrent times are comprised in parallel branches of execution in the tree structured list.  
     
     
         19 . The computer program of  claim 16 , wherein the list of HDL objects is a linear list and wherein the HDL objects comprise block grouping statements and at least first and second HDL objects each comprising executable statements that are configured within the linear list by said logic to be executed in parallel, said first and second HDL objects being associated with events corresponding to concurrent times.  
     
     
         20 . The computer program of  claim 17 , further comprising: 
 a third code segment, the third code segment traversing the list of HDL objects and identifying listed HDL objects that correspond to enabled deferred actions and HDL objects that correspond to non-enabled deferred actions; and    a fourth code segment, the fourth code segment removing any HDL objects from the list of HDL objects that correspond to non-enabled deferred actions to thereby optimize performance of the simulator.

Join the waitlist — get patent alerts

Track US2002170037A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.