Method for simulating a logic system
First Claim
1. A method of simulating a logic system, comprising the steps:
- (a) maintaining a data structure representing a cyclic time loop having a plurality of time slots, each time slot being associated with a plurality of different simulation time values corresponding to successive cycles around the time loop,(b) inserting simulation events into the time slots, each event having an event time value, and each event being inserted into a time slot corresponding to the event time value of that event, events with different event time values corresponding to different cycles around the time loop being simultaneously present in a single time slot,(c) maintaining a current simulation time value, and incrementing said current simulation time value to simulate passage of time, and(d) accessing the time slot corresponding to the current simulation time value, comparing the event time values of events in that time slot with the current simulation time value, and processing only events in that time slot whose event time values are equal to the current simulation time value.
1 Assignment
0 Petitions
Accused Products
Abstract
A logic simulator has a time loop with a number of time slots into which events are scheduled. The events are wrapped around the loop, so that event times corresponding to different cycles around the loop may be simultaneously present on the loop. This allows a small loop size to be used, which improves performance. Preferably, the loop size is a prime number. If a complete cycle of the loop is made without finding any non-empty slots a jump is made to the next event time, so as to speed up the processing. In one described embodiment, the loop size is static, while in a second described embodiment the loop size is dynamically varied to minimize the insertion of events with different event times into the same slot.
-
Citations
11 Claims
-
1. A method of simulating a logic system, comprising the steps:
-
(a) maintaining a data structure representing a cyclic time loop having a plurality of time slots, each time slot being associated with a plurality of different simulation time values corresponding to successive cycles around the time loop, (b) inserting simulation events into the time slots, each event having an event time value, and each event being inserted into a time slot corresponding to the event time value of that event, events with different event time values corresponding to different cycles around the time loop being simultaneously present in a single time slot, (c) maintaining a current simulation time value, and incrementing said current simulation time value to simulate passage of time, and (d) accessing the time slot corresponding to the current simulation time value, comparing the event time values of events in that time slot with the current simulation time value, and processing only events in that time slot whose event time values are equal to the current simulation time value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
Specification