|
Claims  |
|
|
I claim:
1. A logic simulation method of a parallel processing type for calculating
an operation of a logic circuit to be simulated by using an algorithm of
an event driven type, wherein a value calculated as a current simulation
time, denominated as current time, is used, and a change of a signal state
occurring at an input terminal and an output terminal of an element
included in said logic circuit is represented by data denominated as
events, said events including
a value, denominated as an event time, representing a time when the change
of the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew, and
wherein each of the events has an identifier for classifying the events
into a plurality of groups,
said logic simulation method comprising the steps of:
(a) storing data representing changes of the states of signals applied to
the input terminal of said logic circuit as unprocessed event groups;
(b) taking out, from the stored unprocessed event groups, an event having
an event time equal to the current time and erasing the event which has
been stored;
(c) setting a value to an identifier of the taken-out event;
(d) processing the event, to whose identifier a value has been set, by
using the algorithm of the event driven type and storing, as a new
unprocessed event, a newly calculated event by the processing using the
algorithm of the event driven type;
(e) deciding whether or not an event having an event time equal to the
current time is present in the stored unprocessed event groups;
(f) selecting one of values which can be assumed by the identifiers for
classifying the events into a plurality of groups;
(g) deciding whether or not an event, to whose identifier a value equal to
the selected value has been set, is present in the other stored
unprocessed event groups; and
(h) updating the current time when it is decided that an event having the
event time equal to the current time is not present in the stored
unprocessed event groups, and when it is decided that an event, to whose
identifier a value equal to the selected value has been set, is not
present in the other stored unprocessed event groups;
said steps (a)-(h) being processible in parallel with one another.
2. A logic simulation method of a parallel processing type for calculating
an operation of a logic circuit to be simulated by using an algorithm of
an event driven type, wherein a value calculated as a current simulation
time, denominated as current time, is used, and a change of a signal state
occurring at an input terminal and an output terminal of an element
including in said logic circuit is represented by data denominated as
events, said events including
a value, denominated as an event time, representing a time when the change
of the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew, and
wherein each of the events has an identifier for classifying the events
into a plurality of groups,
said logic simulation method comprising the steps of:
(a) storing data representing changes of the states of signals applied to
the input terminal of said logic circuit as unprocessed event groups;
(b) taking out, from the stored unprocessed event groups, an event having
an event time equal to the current time and erasing the event which has
been stored;
(c) setting a value to an identifier of the taken-out event;
(d) processing the event, to whose identifier a value has been set, by
using the algorithm of the event driven type, and setting a value equal to
the value set to the identifier of the taken-out event to an identifier of
a newly calculated event obtained by the processing using the algorithm of
the event driven type, when an event time of the newly calculated event is
equal to the event time of the taken-out event which has been taken out
from the stored unprocessed event groups and which has been used to
calculate the newly calculated event, while, setting a value different
from the value set to the identifier of the taken-out event to an
identifier of a newly calculated event, when an event time of the newly
calculated event is different from the event time of the taken-out event;
(e) storing the newly calculated event as a new unprocessed event;
(f) deciding whether or not an event having an event time equal to the
current time is present in the stored unprocessed event groups;
(g) deciding whether or not an event whose identifier has a set value equal
to the value set to the identifier of a taken-out event, which has been
taken out from the stored unprocessed event groups, is present in the
other stored unprocessed event groups;
(h) updating the current time when it is decided that an event having the
event time equal to the current time is not present in the stored
unprocessed event groups, and when it is decided that an event whose
identifier has a set value equal to the value set to the identifier of the
taken-out event, which has been taken out from the stored unprocessed
event groups, is not present in the other stored unprocessed event groups;
(i) changing a value to be set to the identifier of the taken-out event,
which has been taken out from the stored unprocessed event groups, when
the current time has been updated;
said steps (a)-(i) being processible in parallel with one another.
3. A logic simulation method of a parallel processing type for calculating
an operation of a logic circuit to be simulated by using an algorithm of
an event driven type, wherein a value calculated as a current simulation
time, denominated as current time, is used, and a change of a signal state
occurring at an input terminal and an output terminal of an element
included in said logic circuit is represented by data denominated as
events, said events including
a value, denominated as an event time, representing a time when the change
of the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed in an event
representing the change of the signal state of the output terminal
generated anew, and
wherein each of the events has an identifier for classifying the events
into a plurality of groups,
said logic simulation method comprising the steps of:
(a) storing data representing changes of the states of signals applied to
the input terminal of said logic circuit as unprocessed event groups;
(b) taking out, from the stored unprocessed event groups, an event having
an event time equal to the current time and erasing the event which has
been stored;
(c) setting a value to an identifier of the taken-out event;
(d) processing the event, to whose identifier a value has been set, by
using the algorithm of the event driven type, and setting a value equal to
the value set to the identifier of the taken-out event to an identifier or
a newly calculated event obtained by the processing using the algorithm of
the event driven type, when an event time of the newly calculated event is
equal to the event time of the taken-out even which has been taken out
from the stored unprocessed event groups and which has been used to
calculate the newly calculated event, while, setting a value different
from the value set to the identifier of the taken-out event to an
identifier of a newly calculated event, when an event time of the newly
calculated event is different from the event time of the taken-out event;
(e) storing the newly calculated event as a new unprocessed event;
(f) storing a minimum value of event times of newly calculated event
groups;
(g) deciding whether or not an event having an event time equal to the
current time is present in the stored unprocessed event groups;
(h) deciding whether or not an event whose identifier has a set value equal
to the value set to the identifier of a taken-out event, which has been
taken out from the stored unprocessed event groups, is present in the
other stored unprocessed event groups;
(i) updating the current time successively within a range in which an event
having an even time equal to the current time is not present in the stored
unprocessed event groups and the current time does not exceed a value
stored as a minimum value of the event times of the events which have been
newly calculated by using the algorithm of the event driven type, when it
is decided that an event having the event time equal to the current time
is not present in the stored unprocessed event groups and when it is
decided that an event whose identifier has a set value equal to the value
set to the identifier of the taken-out event, which has been taken out
from the stored unprocessed event groups, is not present in the other
stored unprocessed event groups;
(j) changing a value to be set to the identifier of the taken-out event,
which has been taken out from the stored unprocessed event groups, when
the updating of the current time has been completed; and
(k) re-initializing a value stored as a minimum value of the event times of
the event groups which have been calculated by using the algorithm of the
event driven type;
said steps (a)-(k) being processible in parallel with one another.
4. A logic simulation method of a parallel processing type for calculating
an operation of a logic circuit to be simulated by using an algorithm of
an event driven type, wherein a value calculated as a current simulation
time, denominated as current time, is used, and a change of a signal state
occurring at an input terminal and an output terminal of an element
included in said logic circuit is represented by data denominated as
events, said events including
a value, denominated as an event time, representing a time when the change
of the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to said current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is representing by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew, and
wherein each of the events has an identifier for classifying the events
into a plurality of groups,
said logic simulation method comprising the steps of:
(a) storing data representing changes of the states of signals applied to
the input terminal of said logic circuit as unprocessed event groups;
(b) performing first take-out processing by taking out, from the stored
unprocessed event groups, an event having an event time equal to the
current time and erasing the event which has been stored;
(c) performing second take-out processing when the first take-out
processing is not performed, wherein an unprocessed event representing the
change of the signal state of the input terminal of each element is
processed independently of any other elements, and, when unprocessed
events representing the changes of the signal states of the input
terminals are present at all input terminals of the elements, then an
event having a minimum event time among the unprocessed events is taken
out and the event which has been stored is erased;
(d) storing a minimum one of the event times of the events taken out in the
first take-out processing or the second take-out processing;
(e) setting a value to an identifier of the taken-out event which is
taken-out in the first take-out processing or the second take-out
processing;
(f) processing the event, to whose identifier a value has been set, by
using the algorithm of the event driven type, and setting a value equal to
the set value of the identifier of an event, which has been taken-out from
the stored unprocessed event groups so as to be used to process the event,
to the identifier of a newly calculated event obtained by the processing
using the algorithm of the event driven type;
(g) storing the newly calculated event, to whose identifier the value has
been set, as a new unprocessed event;
(h) deciding whether or not an event having an event time equal to the
current time is present in the stored unprocessed event groups;
(i) selecting one of values which can be assumed by the identifiers for
classifying the events into a plurality of groups;
(j) deciding whether or not an event, to whose identifier a value equal to
the above-selected value has been set, is present in the other stored
unprocessed event groups;
(k) updating the current time successively within a range in which an event
having an event time equal to the current time is not present in the
stored unprocessed event groups and the current time does not exceed a
value stored as a minimum value of the event times of the events which
have been taken out by the first take-out processing or the second
take-out processing, when it is decided that an event having the event
time equal to the current time is not present in the stored unprocessed
event groups and that an event whose identifier has a set value equal to
the above-selected value is not present in the other stored unprocessed
event groups;
(l) changing, at the time of starting the second take-out processing, a
value to be set to the identifier of an event which has been taken out
from the stored unprocessed event groups,
(m) changing, at the time of starting the second take-out processing, a
value to be selected as one of the values, which values can be assumed by
an identifier for classifying the events into a plurality of groups, to a
value which has been set to an event taken out from the stored unprocessed
event groups, until immediately before the time of starting the second
take-out processing; and
(n) re-initializing, at the time of completion of updating the event time,
the value stored as a minimum value of the event times of the events taken
out by the first take-out processing or the second take-out processing;
said steps (a)-(n) being processible in parallel with one another.
5. A logic simulation apparatus of a parallel processing type for
calculating an operation of a logic circuit to be simulated by using an
algorithm of an event driven type, wherein a value calculated as a current
simulation time, denominated as current time, us used, and a change of a
signal state occurring at an input terminal and an output terminal of an
element included in said logic circuit is represented by data denominated
as events, said events including
a value, denominated as an event time, representing a time when the change
of the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew,
said logic simulation apparatus comprising:
(a) a current time outputting unit for outputting a current time;
(b) an event memory unit for storing unprocessed events;
(c) an event take-out unit for taking out from said event memory unit an
event having an event time equal to the current time and erasing from said
event memory unit the taken-out event;
(d) a coloring unit for assigning one of a plurality of identifiers, which
classify the events into a plurality of groups, to a taken-out event which
has been taken out from said event memory unit;
(e) a circuit operation calculation unit for inputting an event, to which
one of said identifiers has been assigned, as input data, calculating a
change of a signal state of the logic circuit to be simulated by using the
algorithm of the event driven type, and outputting an event representing a
result of the calculation as a new unprocessed event having the one of the
identifiers;
(f) a special color designation unit for selecting one value from among a
plurality of values, which can be assumed by the identifiers assigned to
the events by said coloring unit, and outputting t he selected one value
as a special color; and
(g) a special color presence deciding unit for deciding whether or not an
event having an identifier, whose value is equal to the value of the
special color, is present in said event take-out unit and said circuit
operation calculation unit, wherein,
said event memory unit comprises:
storage means for storing the event outputted from said circuit operation
calculation unit, but with the identifier being removed therefrom; and
means for deciding whether or not an event having an event time equal to
the current time is present in said event memory unit, and
said current time outputting unit comprises means for updating the current
time when said event memory unit has decided that an event having an event
time equal to the current time is not present in said event memory unit
and simultaneously when said special color presence deciding unit has
decided that an event, whose identifier has a set value equal to the
special color, is not present in both said event take-out unit and said
circuit operation calculation unit;
said units (a)-(g) comprising hardware independent of one another and being
operable in parallel with one another.
6. A logic simulation apparatus of a parallel processing type for
calculating an operation of a logic circuit to be simulated by using an
algorithm of an event driven type wherein a value calculated as a current
simulation time, denominated as current time, is used, and a change of a
signal state occurring at an input terminal and an output terminal of an
element included in said logic circuit is represented by data denominated
as events, said events including
a value, denominated an event time, representing a time when the change of
the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew,
said logic simulation apparatus comprising:
(a) a current time outputting unit for outputting a current time;
(b) an event memory unit for storing unprocessed events;
(c) an event take-out unit for taking out from said event memory unit an
event having an event time equal to the current time and for erasing from
said event memory unit the taken-out event;
(d) a coloring unit for assigning one of a plurality of identifiers, which
classify the events into a plurality of groups, to a taken-out event which
has been taken out from said event memory unit;
(e) a circuit operation calculation unit for inputting an event, to which
one of the identifiers has been assigned, as input data, calculating a
change of a signal state of the logic circuit to be simulate by using the
algorithm of the event driven type, and outputting an event representing a
result of the calculation;
(f) a special color designation unit for outputting, as a special color, a
value which is the same as the value of an identifier which has been
assigned to an event by said coloring unit; and
(g) a special color presence deciding unit for deciding whether or not an
event having an identifier, whose value is equal to the value of the
special color, is present in said event take-out unit and said circuit
operation calculation unit, wherein,
said circuit operation calculation unit comprises:
means for processing the event, which has been taken out from said event
memory unit and to which the identifier has been assigned, by using the
algorithm of the event driven type, thereby calculating and outputting a
new event;
means for setting a value which is the same as the special color to an
identifier of the new event when an event time of the new event is equal
to the event time of the taken-out event which has been taken out from
said event memory unit and used in the calculation to obtain the new
event, while, said means setting a value different from the special color
to the identifier of the new event when the event time of the new event is
different from the event time of the taken-out event which has been taken
out from said event memory unit and used in the calculation to obtain the
new event; and
means for outputting, as a new unprocessed event, the new event which has
been calculated anew and to whose identifier the new value has been
assigned,
said event memory unit comprises:
storage means for storing the event outputting from said circuit operation
calculation unit, but with the identifier being removed therefrom; and
means for deciding whether or not an event having an event time equal to
the current time is present in said event memory unit,
said current time outputting unit comprises means for updating the current
time when said event memory unit has decided that an event having an event
time equal to the current time is not present in said event memory unit
and simultaneously when said special color presence deciding unit has
decided that an event, whose identifier has a set value equal to the
special color, is not present in both said event take-out unit and said
circuit operation calculation unit, and
said coloring unit comprises means for changing a value of an identifier to
be assigned to a taken-out event which has been taken out from said event
memory unit when the current time has been updated,
said units (a)-(g) comprising hardware independent of one another and being
operable in parallel with one another.
7. A logic simulation apparatus of a parallel processing type for
calculating an operation of a logic circuit to be simulated by using an
algorithm of an event driven type, wherein a value calculated as a current
simulation time, denominated as current time, is used, and a change of a
signal state occurring at a input terminal and an output terminal of an
element included in said logic circuit is represented by data denominated
as events, said events including
a value, denominated an event time, representing a time when the change of
the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew,
said logic simulation apparatus comprising:
(a) a current time outputting unit for outputting a current time;
(b) an event memory unit for storing unprocessed events;
(c) an event take-out unit for taking out from said event memory unit an
event having an event time equal to the current time and for erasing from
said event memory unit the taken-out event;
(d) a coloring unit for assigning one of a plurality of identifiers, which
classify the events into a plurality of groups, to a taken-out event which
has been taken out from said event memory unit;
(e) a circuit operation calculating unit for inputting an event, to which
one of the identifiers has been assigned, as input data, calculating a
change of a signal state of the logic circuit to be simulated by using the
algorithm of the event driven type, and outputting an event representing a
result of the calculation;
(f) a minimum event time memory unit for storing a minimum value of event
times of the events outputted from said circuit operation calculating
unit;
(g) a special color designation unit for outputting, as a special color, a
value which is the same as the value of an identifier which has been
assigned to an event by said coloring unit; and
(h) a special color presence deciding unit for deciding whether or not an
event having an identifier, whose value is equal to the value of the
special color, is present in said event take-out unit and said circuit
operation calculation unit, wherein
said circuit operation calculation unit comprises:
means for processing the event, which has been taken out from said event
memory unit and to which the identifier has been assigned, by using the
algorithm of the event driven type, thereby calculating and outputting a
new event;
means for setting a value which is the same as the special color to an
identifier of the new event when an event time of the new event is equal
to the event time of the taken-out event which has been taken out from
said event memory unit and used in the calculation to obtain the new
event, while, said means setting a value different from the special color
to the identifier of the new event when the event time of the new event is
different from the event time of the taken-out event which has been taken
out from said event memory unit and used in the calculation to obtain the
new event; and
means for outputting, as a new unprocessed event, the new event which has
been calculated anew and to whose identifier the new value has been set,
said event memory unit comprises:
storage means for storing the event outputted from said circuit operation
calculation unit, but with the identifier being removed therefrom; and
means for deciding whether or not an event having an event time equal to
the current time is present in said event memory unit,
said current time outputting unit comprises means for updating the current
time successively within a range in which an event having an event time
equal to the current time is not present in said event memory unit and the
current time does not exceed values stored in said minimum event time
memory unit, when it is decided by said event memory unit that an event
having the event time equal to the current time is not present in said
event memory unit and when it is decided by said special color presence
deciding unit that an event, whose identifier has a set value equal to the
special color, is not present in both said event take-out unit and said
circuit operation calculation unit,
said coloring unit comprises means for changing a value of an identifier to
be assigned to a taken-out event which has been taken out from said event
memory unit when the updating of the current time has been completed, and
said minimum time memory unit comprises means for reinitializing the stored
minimum value of event times of the events when the updating of the
current time has been completed,
said units (a)-(h) comprising hardware independent of one another and being
operable in parallel with one another.
8. A logic simulation apparatus of a parallel processing type for
calculating an operation of a logic circuit to be simulated by using an
algorithm of an event driven type, wherein a value calculated as a current
simulation time, denominated as current time, is used, and a change of a
signal state occurring at an input terminal and an output terminal of an
element included in said logic circuit is represented by data denominated
as events, said events including
a value, denominated an event time, representing a time when the change of
the signal state has occurred,
a value representing to what state the signal state has changed, and
a value representing the input terminal or the output terminal of the
element where the signal state has changed, and
in which algorithm,
an event having an event time equal to the current time is decided to be
processible,
the signal state of the output terminal of the element is calculated anew
only with respect to the element which is represented by the processible
event and the signal state of whose input terminal has changed, and
only when the signal state of the output terminal has changed is an event
representing the change of the signal state of the output terminal
generated anew,
said logic simulation apparatus comprising:
(a) a current time outputting unit for outputting a current time;
(b) an event memory unit for storing unprocessed events;
(c) a first event take-out unit for taking out form said event memory unit
an event having an event tim equal to the current time and erasing from
said event memory unit the taken-out event;
(d) a second event take-out unit wherein, when said first take-out unit
does not take out an event from said event memory unit, unprocessed events
representing the change of the signal state of input terminals of the
elements respectively are processed independently of one another among the
elements, and when the unprocessed events representing the change of the
signal state of the input terminals are present at all the input terminals
of the elements, said second event take-out unit takes out an event having
a minimum event time among the unprocessed events and erases the events
which have been stored;
(e) a minimum event time memory unit for storing a minimum value of events
times of the events which have been taken out from said event memory unit
by said first event take-out unit or said second event take-out unit;
(f) a coloring unit for assigning one of a plurality of identifiers, which
classify the events into a plurality of groups, to a taken-out event which
has been taken out from said event memory unit by said first event
take-out unit or said second event take-out unit;
(g) a circuit operation calculation unit for inputting an event, to which
one of the identifiers has been assigned, as input data, calculating a
change of a signal state of the logic circuit to be simulated by using the
algorithm of the event driven type, setting, to an identifier of an event
representing a result of the calculation, a value which is the same as the
set value of the identifier or an event used as input data to calculate
the event representing the result of the calculation, and outputting, as a
new unprocessed event, the resultant event representing the result of the
calculation;
(h) a special color designation unit for selecting one value from among
plural values, which can be assumed by the identifiers assigned to the
events by said coloring unit, and outputting the selected one value as a
special color;
(i) a special color presence deciding unit for deciding whether or not an
event having an identifier, whose value is equal to the value of the
special color, is present said first and second event take-out units and
said circuit operation calculation unit;
wherein,
said event memory unit comprises:
storage means for storing the event outputted from said circuit operation
calculating unit, but with the identifier being removed therefrom; and
means for deciding whether or not an event having an event time equal to
the current time is present in said event memory unit,
said current time outputting unit comprises means for updating the current
time successively within a range in which an event having an event time
equal to the current time is not present in said event memory unit and the
current time does not exceed values stored in said minimum event time
memory unit, when it is decided by said event memory unit that an event
having the event time equal to the current time is not present in said
event memory unit, and when it is decided by said special color presence
deciding unit that an event, whose identifier has a set value equal to the
special color, is not present in said first and second event take-out
units and said circuit operation calculation unit,
said coloring unit comprises means for changing a value of an identifier to
be assigned to a taken-out event, which has been taken out from said event
memory unit, at the time when said second event take-out unit starts to
take out an event from said event memory unit,
said special color designating unit comprises means for changing a value,
which is outputted as one of plural values assumable by an identifier to
be assigned to an event by said coloring unit, at the time when said
second event take-out unit starts to take out an event from said event
memory unit, to a value, which has been set to an event taken out from a
said event memory unit by said coloring unit until immediately before the
time when said second event take-out unit starts to take out an event from
said event memory unit, and
said minimum time memory unit comprises means for reinitializing the stored
minimum value of event times of the events when the updating of the
current time has been completed,
said unit comprising hardware independent of one another and being operable
in parallel with one another. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to method and apparatus for logic simulation
to be used for verifying an operation of a logic circuit, and more
particularly to method and apparatus for event driven logic simulation.
More specifically, the present invention relates to method and apparatus
for logic simulation in which a change in a signal status at an input
terminal or a change in a signal status at an output terminal of an
element of a logic circuit to be simulated (a gate such as AND, NAND, OR,
NOR or XOR, a memory such as RAM or ROM, a functional element such as
flip-flop, counter or gate array, a bilateral element realized by MOS
transistors, or a virtual element representing a bus) is considered as an
event, and the signal status at the output terminal is calculated only for
that element whose signal status at the input terminal has changed.
Prior art method and apparatus for logic simulation are explained with
reference to FIG. 22 which shows a schematic configuration of a
conventional event driven logic simulation apparatus. In FIG. 22, numeral
221 denotes a current time output unit, numeral 222 denotes an event
memory, numeral 223 denotes an event take-out unit, numeral 224 denotes a
circuit operation calculation unit, and numerals 826, 827, 828, 829, 830,
831 and 832 denote signal lines.
Simulation is carried out by transferring the event among the event memory
222, event take-up unit 23 and circuit operation calculation unit 224.
The current time output unit 221 is initially set to "0" and outputs a
current time on the signal line 826.
The event memory 222 stores those events whose event times are equal to or
larger than the current time.
The event take-out unit 223 takes out an event whose event time is equal to
the current time from the event memory 222 through the signal line 827 and
outputs it on the signal line 828.
The circuit operation calculation unit 224 receives the event from the
signal line 828, calculates new changes in the signal status at the input
terminal and the output terminal of the element in the logic circuit to be
simulated, which changes are caused by a change in a signal status
represented by the event, in accordance with the event driven algorithm,
and outputs the event representing the result of calculation on the signal
line 829.
The event memory 222 receives the event from the signal line 829 and stores
it.
The current time output unit 221 is informed from the event memory 222
through the signal line 832 whether events whose event times are equal to
the current time are present in the event memory 222, informed from the
event take-out unit 223 through the signal line 830 whether an event is
present in the event take-out unit 223, informed from the circuit
operation calculation unit 224 through the signal line 831 whether an
event is present in the circuit operation calculation unit 224, and when
there is no event having the event time equal to the current time in the
event memory 222 and there is no event in either the event take-out unit
223 or the circuit operation calculation unit 224, the current time output
unit 221 determines that all processes for the current time have been
completed and it advances the current time.
Then, the above processes are repeated for the new current time so that the
simulation is proceeded.
Recently, such a logic simulation apparatus is realized by hardware and the
event memory 222, event take-out unit 223 and circuit operation
calculation unit 224 are pipelined or the circuit operation calculation
unit 224 itself is further pipelined in order to attain a high speed in
the simulation.
However, in the prior art logic simulation method, that is, the event
driven logic simulation method in which the current time is advanced after
all events in the event take-out unit and the circuit operation
calculation unit have been processed, if a logic simulation apparatus for
performing the simulation in accordance with the above simulation method
is provided to effect pipeline processing by the event memory, event
take-out unit and circuit operation calculation unit, it is necessary to
store all events in the event memory. As a result, the increase of the
processing speed by the pipeline processing is not substantial.
The high speed operation by the pipeline processing is explained in general
with reference to FIGS. 20 and 21 which illustrate the pipeline
processing. In FIG. 20, A, B and C denote processors which constitute a
pipeline, and n-2, n-1, n, n+1 and n+2 denote data. In FIG. 21, A, B and C
denote processors which constitute the pipeline, and n-2, n-1, n+1 and n+2
denote data.
It is assumed that the pipeline comprises three processors A, B and C which
perform a series of processings. Each of the processors A, B and C can
process one data in a unit time. If the processors A, B and C are not
pipelined and the data are serially processed, three units of processing
time are required for each data. By the pipeline processing, the
processing speed may be increased. As shown in FIG. 20, it is assumed that
at a time t, the data n is processed by the processor A, the data n-1 is
processed by the processor B and the data n-2 is processed by the
processor C. At a time t+1, the new data n+1 is processed by the processor
A, the data n is processed by the processor B and the data n-1 is
processed by the processor C. At a time t+2, the new data n+2 is processed
by the processor A, the data n+1 is processed by the processor B and the
data n is processed by the processor C.
Thus, in the pipeline processing, the three data n-2, n-1 and n are
outputted from the pipeline in the three units of times t, t+1 and t+2.
Thus, one data is processed in one unit time as a whole, and the
processing speed is three times as high as that of the serial processing.
However, if the data are not continuously supplied from the external and
there is no data to be processed in one of the processors in the pipeline,
the degree of high speed operation of the pipeline processing decreases.
As shown in FIG. 21, it is assumed that at a time t, the data n-1 is
processed by the processor B and the data n-2 is processed by the
processor C, but there is no data to be processed in the processor A. At
the time t+1, the new data n+1 is processed by the processor A and the
data n-1 is processed by the processor C, but there is no data to be
processed in the processor B. At the time t+2, the new data n+2 is
processed by the processor A and the data n+1 is processed by the
processor B, but there is no data to be processed in the processor C.
Thus, the two data n-2 and n-1 are outputted in the three units of times
t, t+1 and t+2, and as a whole, one data is processed in 1.5 unit time.
Thus, if there is no data to be processed in one of the processors in the
pipeline (a gap in the pipeline) or there is no data to be processed in
the pipeline (vacancy in the pipeline), the degree of high speed operation
by the pipeline processing is lowered.
Accordingly, in order to fully accomplish the high speed operation by the
pipeline processing, it is necessary to continuously supply the data to
the pipeline.
However, in the prior art event driven logic simulation method in which the
current time is advanced after all events in the event take-out unit and
the circuit operation calculation unit have been processed, the update of
the current time by the current time output unit and the take-out of the
event having the new event time by the event take-out unit must be carried
out after the event take-out unit has taken out all events having the
equal event time to the current time from the event memory and the circuit
operation calculation unit has processed all such events. Thus, the two
processors, that is, the vent take-out unit and the circuit operation
calculation unit of the pipeline which comprises the event memory, event
take-out unit and circuit operation calculation unit must be emptied.
As a result, where the prior art method in which the current time is
advanced after the events in the event take-out unit and the circuit
operation calculation unit have been emptied is used, the degree of high
speed operation by the pipeline processing is lowered even if the logic
simulation apparatus for the pipeline processing is prepared.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a logic simulation
apparatus which has a smaller gap in a pipeline than that of the logic
simulation apparatus designed by the prior art method in which the current
time is advanced after the event take-out unit and the circuit operation
calculation unit have been emptied.
In order to achieve the above object, the present invention comprises a
coloring unit for applying a color identifier (hereinafter simply referred
to as color) to an event by selecting the color from a plurality of
colors, a special color designation unit for selecting one special color
from the plurality of colors which the coloring unit may apply to the
event, and a special color detection unit for detecting whether an event
having the special color is present in an event take-out unit or a circuit
operation calculation unit. It further comprises a color change unit, a
minimum ti | | |