Logic simulator which can maintain, store, and use...

Data processing: structural design – modeling – simulation – and em – Simulating electronic device or electrical system

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06173241

ABSTRACT:

FIELD OF THE INVENTION
This invention pertains to the field of computer-aided design, and more particularly to integrated circuit simulation.
BACKGROUND OF THE INVENTION
Verification tools such as simulators play a vital role in efficient integrated circuit design. A circuit designer may use a simulator to verify that a design actually performs a desired function before fabricating a physical representation of that design. With the increasing complexity and expense of designing integrated circuits comes an increasing need for design verification tools which accelerate and simplify the design process.
The event-driven simulator is such a tool. In an event-driven simulator, small procedures, or functions, model the behavior of circuit elements, or cells, such as simple logic gates or more sophisticated elements such as arithmetic logic units. These procedures set the values of variables to represent nodes, such as wires or connections, within the circuit. Each node carries a signal, a unit of information in the simulation. Simulation is accomplished by setting the values of signals on nodes at the appropriate times.
In an event-driven simulator, an event is scheduled for a future time in the simulation when the simulator determines that the value of a signal on a node is to change. The information comprising an event includes the node to be changed, the new value of the signal at the node and the time at which the change is to take place. Pending events for any particular time are sorted in a prioritized event queue. The event queue provides the key list of tasks for a simulation.
In a known method of event-driven simulation, a next event is taken from the event queue. The value of the node affected is then set and every function that takes the node as an input is then evaluated. The function evaluations generate more events which are then added to the event queue.
For example, an input to an AND gate changes at simulated time T=12 nanoseconds (ns). The AND gate is re-evaluated and its output should change 2 ns later, at T=14 ns. The simulator schedules an event for the node of the AND gate output, storing its new value and time T=14 ns. The output of the AND gate is not changed immediately, since other activity may occur at T=13 ns which will use the current (not yet changed) value of the AND gate output node.
The simulator takes events in sequence, perhaps evaluating more events at T=12 ns and T=13 ns until it reaches T=14 ns. It removes the event from its list of pending changes, makes the change to the AND gate output and evaluates all the destinations of that node (the node's fanout), possibly creating more events at future times. The event information is then discarded.
With events generated in this manner, each cycle of the simulator invokes only those functions that must be evaluated. Since very few of the functions are invoked for each event, the event-driven method has the advantage of avoiding scanning a list of functions by keeping with each node a list of the functions it drives. All functions common to simultaneous events are preferably evaluated simultaneously to avoid re-evaluating the same function when only one evaluation is needed. Since modern circuits can include over a million cells, this feature of event-driven simulators is especially significant due to the long processing time required to evaluate all cell functions. It is desirable to further limit the amount of function evaluation needed during the simulation process while generating accurate results.
To allow a user to control a simulation, event-driven simulators supply a user interface. In the user interface, the user is allowed to examine nodes, set node values and re-start simulation.
If desired, a simulation can be scheduled to run for a specific amount of time with periodic interruption for the user interface. Similarly, the user interface can be invoked when certain node conditions are met or when a simulation is complete. A user interface may also be invoked when an unexpected system failure occurs.
Prior Art Simulation System
It will be helpful to an understanding of the present invention to first describe a known simulation system and flow diagram.
In
FIG. 1
, two AND gates
10
and
20
are shown. The inputs to AND gate
10
are nodes
12
and
14
, and the inputs to AND gate
20
are nodes
16
and
24
. Output node
16
of gate
10
is one input of gate
20
. The output of gate
20
is node
26
. For purposes of discussion it is assumed that gate
10
has a delay of 20 time units (e.g., tenths of nanoseconds) and gate
20
a delay of 10 time units.
The algorithm set forth in flow diagram form in
FIG. 2
can be used to simulate circuits such as the circuit of FIG.
1
. Obviously, in practice, much more complicated circuits are simulated containing hundreds of thousands or even millions of gates.
In the prior art, before the simulation begins, the circuit which is to be simulated is first represented digitally as a collection of gates. In this representation, a fanout of each node is set forth. Each fanout describes all the destinations of a node. For instance, referring to
FIG. 1
, it would be noted that in the fanout record of node
16
that the output of gate
10
is connected to one input terminal of gate
20
. If there were other gates connected to this node, they would be set forth as well, as part of the node's fanout. Similarly, for nodes
24
,
26
,
12
, and
14
, other gates coupled to these nodes would be set forth in their respective fanout information.
A state array is used in the known simulator to store the current values of the circuit nodes throughout the simulation. Each time a node value changes, the state array is updated accordingly. If desired, state information may be stored with the other information that makes up a node, such as the list of gates in a node's fanout.
The circuit representation in the simulator also includes a full description of behavior characteristics of each of the logical components. For gate
10
, the stored characteristics would indicate that gate
10
has a delay of 20 time units and that the output of the gate goes high when both inputs are high. Similarly, for gate
20
the entry for this gate would indicate that its output goes high when both its inputs are high and that the gate has a delay of 10 time units. Such description may also be made in the form of a truth table for each logical device.
The following example refers to simulated time in time units. A typical time unit for the circuit of
FIG. 1
would be 0.1 nanoseconds (ns). We will assume the simulation is to run for 6 ns beginning at time 0 ns, so the target time for completing the simulation is 60 time units.
Typically, in a simulation, there are initial events, conditions or inputs to stimulate the system being analyzed. To begin, assume all nodes for the circuit of
FIG. 1
are initially zero. Assume further that at time 1 the potential at node
14
goes high (N14=1@1), at time 10 the potential at node
12
goes high (N12=1@10), and at time 40 the potential at node
24
goes high (N24=1@40). Corresponding events for these changes are placed in the event queue. A timing diagram of the nodes in the present example is provided in FIG.
4
.
Events in the known simulator are stored with the simulated time for which each event is scheduled. Events are inserted into the event queue in any order. Events are removed from the event queue in order of increasing time. Therefore, every time an event is processed, it is the next most recent event.
FIG. 3
provides a clear representation of an event queue implementation referred to as a time wheel. Each slot in the time wheel contains a list of all events at one time step in the simulation. The current time, t, progresses through all time slots.
At step
56
, the simulation begins. At step
60
three pending events are found in the event queue, so the simulation continues. If no events had been found, a user interface would be ente

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Logic simulator which can maintain, store, and use... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Logic simulator which can maintain, store, and use..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Logic simulator which can maintain, store, and use... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2555718

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.