Patent US5655107A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5655107A Expired / Lapsed US ⏱️ 0.0 years remaining

Digital logic wire delay simulation

Assignee: International Business Machines Corp
•
Filing: 1994-11-30
•
Granted: 1997-08-05
•
Expires: 2014-11-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A digital logic simulation system simulates a digital logic system having component blocks connected by nets with a master queue that contains events to be performed during the simulation, a scheduler that adds events to the master queue such that the processing of each block is represented by an update event and a compute event, and a dispatcher that maintains a time clock that defines a simulation clock time, extracts events from the master queue according to the simulation clock time, and produces a simulation output, such that wire delays for particular nets are modelled with a corresponding update event and compute event. Only those nets that have an associated wire delay that is being modelled will cause a wire delay update event and compute event. All other nets will not result in wire delay events.

Inventors

  • 👤 Michael Bull

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 00:59
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/22; G06F11/26; G06F11/261; G06F30/00; G06F30/30; G06F30/32; G06F30/33

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 291 words
A combination for the simulation of a digital logic circuit on a processing machine, the combination comprising: a memory unit having a master queue that contains events to be performed during a simulation of the digital logic circuit in which blocks representing components of the digital logic circuit are connected to each other by nets representing block-to-block wire connections of the digital logic circuit and include input pins that receive input values representing a logic signal; a scheduler that adds events to the master queue that are associated with a simulation clock time index corresponding to changes in the input values such that each block and net is associated with an update event and a compute event; a dispatcher that maintains a simulation clock time of the digital logic circuit simulation, extracts events from the master queue according to the simulation clock time of each event, and produces a simulation output; an update processor that receives update events from the dispatcher and performs update processing necessary to identify a compute event to the dispatcher for scheduling in the master queue; and a compute processor that receives compute events from the dispatcher and performs computations necessary to produce a compute event output value that it returns to the dispatcher; wherein the scheduler responds to a user indication of a net whose wire delay is to be simulated by scheduling a wire delay update event in the master queue for that net only, and wherein the corresponding update processor responds to the wire delay update event by identifying a wire delay compute event for scheduling in the master queue, such that the wire delay compute event output value is produced at a simulation clock time that accounts for the associated wire delay value.
Claim 2
Dependent Claim 291 words
A combination for the simulation of a digital logic circuit on a processing machine, the combination comprising: a memory unit having a master queue that contains events to be performed during a simulation of the digital logic circuit in which blocks representing components of the digital logic circuit are connected to each other by nets representing block-to-block wire connections of the digital logic circuit and include input pins that receive input values representing a logic signal; a scheduler that adds events to the master queue that are associated with a simulation clock time index corresponding to changes in the input values such that each block and net is associated with an update event and a compute event; a dispatcher that maintains a simulation clock time of the digital logic circuit simulation, extracts events from the master queue according to the simulation clock time of each event, and produces a simulation output; an update processor that receives update events from the dispatcher and performs update processing necessary to identify a compute event to the dispatcher for scheduling in the master queue; and a compute processor that receives compute events from the dispatcher and performs computations necessary to produce a compute event output value that it returns to the dispatcher; wherein the scheduler responds to a user indication of a net whose wire delay is to be simulated by scheduling a wire delay update event in the master queue for that net only, and wherein the corresponding update processor responds to the wire delay update event by identifying a wire delay compute event for scheduling in the master queue, such that the wire delay compute event output value is produced at a simulation clock time that accounts for the associated wire delay value.
Claim 3
Dependent Claim 134 words
A combination as defined in claim 1, wherein the update processor includes: a single source, without wire delay processor that determines an output value for a net having a single source, without considering a wire delay value; a multi-source, without wire delay processor that determines an output value for a net having multiple sources, without considering a wire delay value; a single source, with wire delay processor that determines an output value for a net having a single source, and considers a wire delay value; a multi-source, with wire delay processor that determines an output value for a net having multiple sources, and considers a wire delay value; and a wire delay sink value processor that determines the output value of a net, taking into consideration a specified wire delay value for the net.
Claim 4
Dependent Claim 60 words
A combination as defined in claim 1, wherein the compute event processor includes: a circuit component processor that determines the output value of a logic circuit component; and a wire delay propagate processor that determines the output value of a net and the simulation clock time at which the output value should appear at the sink end of the net.
Claim 5
Dependent Claim 78 words
A combination as defined in claim 1, wherein the update processor includes a wire delay sink value processor that determines the output value of a net at a current simulation clock time, taking into consideration a specified wire delay value for the net, by updating the input pin value of the logic circuit block connected to the net and then causing a compute event to be scheduled for the logic circuit block at the current simulation clock time.
Claim 6
Dependent Claim 92 words
A combination as defined in claim 1, wherein the compute event processor includes a wire delay propagate processor that determines the value of a net that should appear at the sink end of the net at a current simulation clock time by determining if the net is a multi-source net, selecting an appropriate delay time/net value pair in accordance with a predetermined combinational rule, and causing a wire delay sink update event to be scheduled for occurrence at the current simulation clock time plus an added wire delay time in the future.
Claim 7
Dependent Claim 293 words
A digital logic simulation system that operates with a processing machine, the system comprising: a master queue that contains events to be performed during a simulation of a digital logic circuit in which blocks representing components of the digital logic circuit are connected to each other by nets representing block-to-block wire connections of the digital logic circuit and include input pins that receive input values representing a logic signal; a dispatcher that maintains a simulation clock time of the digital logic circuit simulation, extracts events from the master queue when a current simulation clock time matches a clock time index of each event, and produces a simulation output; an update processor that receives update events from the dispatcher and performs update processing necessary to identify a compute event to the dispatcher for scheduling in the master queue; a compute processor that receives compute events from the dispatcher and performs computations necessary to produce a compute event output value that it returns to the dispatcher; and a scheduler that adds update events and compute events to the master queue corresponding to changes in the input values such that each block and net is associated with an update event when a change in input value is to occur and each update event is associated with a compute event to determine any change in output value for the corresponding block or net; wherein the scheduler responds to a change in a net input value by scheduling a net update event if no wire delay value for the net is to be considered and by scheduling a net update event that in turn schedules a wire delay sink value update event for that net only if a wire delay value for the net is to be considered.
Claim 8
Dependent Claim 293 words
A digital logic simulation system that operates with a processing machine, the system comprising: a master queue that contains events to be performed during a simulation of a digital logic circuit in which blocks representing components of the digital logic circuit are connected to each other by nets representing block-to-block wire connections of the digital logic circuit and include input pins that receive input values representing a logic signal; a dispatcher that maintains a simulation clock time of the digital logic circuit simulation, extracts events from the master queue when a current simulation clock time matches a clock time index of each event, and produces a simulation output; an update processor that receives update events from the dispatcher and performs update processing necessary to identify a compute event to the dispatcher for scheduling in the master queue; a compute processor that receives compute events from the dispatcher and performs computations necessary to produce a compute event output value that it returns to the dispatcher; and a scheduler that adds update events and compute events to the master queue corresponding to changes in the input values such that each block and net is associated with an update event when a change in input value is to occur and each update event is associated with a compute event to determine any change in output value for the corresponding block or net; wherein the scheduler responds to a change in a net input value by scheduling a net update event if no wire delay value for the net is to be considered and by scheduling a net update event that in turn schedules a wire delay sink value update event for that net only if a wire delay value for the net is to be considered.
Claim 9
Independent Claim 189 words
A method of providing a computer simulation of a logic circuit whose changes in logic signal input values are retrieved from a master queue of the computer, the method comprising the steps of: maintaining a simulation time clock; retrieving an update event defining a change in a logic signal input value from the master queue for each simulation time clock value during the computer simulation and performing update processing in accordance with the retrieved update event; placing a compute event on the master queue for every update event retrieved from the master queue in accordance with the update event; calling an update processor according to the update event; repeating the steps of retrieving, placing, and calling for all update events at a current simulation clock time; retrieving a compute event from the master queue for the current simulation clock time; calling a compute processor in accordance with the retrieved compute event; wherein the step of placing a compute event on the master queue comprises scheduling a wire delay sink value update event if the update event retrieved from the master queue comprises a "net update with wire delay" event.
Claim 10
Independent Claim 189 words
A method of providing a computer simulation of a logic circuit whose changes in logic signal input values are retrieved from a master queue of the computer, the method comprising the steps of: maintaining a simulation time clock; retrieving an update event defining a change in a logic signal input value from the master queue for each simulation time clock value during the computer simulation and performing update processing in accordance with the retrieved update event; placing a compute event on the master queue for every update event retrieved from the master queue in accordance with the update event; calling an update processor according to the update event; repeating the steps of retrieving, placing, and calling for all update events at a current simulation clock time; retrieving a compute event from the master queue for the current simulation clock time; calling a compute processor in accordance with the retrieved compute event; wherein the step of placing a compute event on the master queue comprises scheduling a wire delay sink value update event if the update event retrieved from the master queue comprises a "net update with wire delay" event.
Claim 11
Dependent Claim 38 words
A method as defined in claim 7, wherein the wire delay sink value update event is scheduled to occur at a simulation time clock value in the future that accounts for a wire delay time of the net.
Claim 12
Dependent Claim 44 words
A method as defined in claim 7, wherein the step of placing a compute event further includes placing a wire delay propagate compute event on the master queue that calculates a net output value and accounts for a wire delay time of the net.
Claim 13
Dependent Claim 153 words
A method as defined in claim 7, wherein the step of performing update processing in accordance with the retrieved update event comprises calling a processing routine that performs one of either a "single source, without wire delay" process that determines an output value for a net having a single source, without considering a wire delay value, a "multi-source, without wire delay" process that determines an output value for a net having multiple sources, without considering a wire delay value, a "single source, with wire delay" process that determines an output value for a net having a single source, and considers a wire delay value, a "multi-source, with wire delay" process that determines an output value for a net having multiple sources, and considers a wire delay value, or "a wire delay sink value" process that determines the output value of a net, taking into consideration a specified wire delay value for the net.
Claim 14
Dependent Claim 65 words
A method as defined in claim 10, wherein the "wire delay sink value" process comprises the steps of: determining the output value of a net at a current simulation clock time by updating the input pin value of the logic circuit block connected to the net; and causing a compute event to be scheduled for the logic circuit block at the current simulation clock time.
Claim 15
Dependent Claim 77 words
A method as defined in claim 7, wherein the step of calling a compute processor in accordance with the retrieved compute event comprises calling a processing routine that performs either a "circuit component" process that determines the output value of a logic circuit component or a "wire delay propagate" process that determines the output value of a net and the simulation clock time at which the output value should appear at the sink end of the net.
Claim 16
Dependent Claim 211 words
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing a machine simulation of a logic circuit whose changes in logic signal input values are retrieved from a master queue of the machine, the method steps performed by the machine comprising: maintaining a simulation time clock; retrieving an update event defining a change in a logic signal input value from the master queue for each simulation time clock value during the computer simulation and performing update processing in accordance with the retrieved update event; placing a compute event on the master queue for every update event retrieved from the master queue in accordance with the update event; calling an update processor according to the update event; repeating the steps of retrieving, placing, and calling for all update events at a current simulation clock time; retrieving a compute event from the master queue for the current simulation clock time; calling a compute processor in accordance with the retrieved compute event; wherein the step of placing a compute event on the master queue comprises scheduling a wire delay sink value update event if the update event retrieved from the master queue comprises a "net update with wire delay" event.
Claim 17
Dependent Claim 211 words
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing a machine simulation of a logic circuit whose changes in logic signal input values are retrieved from a master queue of the machine, the method steps performed by the machine comprising: maintaining a simulation time clock; retrieving an update event defining a change in a logic signal input value from the master queue for each simulation time clock value during the computer simulation and performing update processing in accordance with the retrieved update event; placing a compute event on the master queue for every update event retrieved from the master queue in accordance with the update event; calling an update processor according to the update event; repeating the steps of retrieving, placing, and calling for all update events at a current simulation clock time; retrieving a compute event from the master queue for the current simulation clock time; calling a compute processor in accordance with the retrieved compute event; wherein the step of placing a compute event on the master queue comprises scheduling a wire delay sink value update event if the update event retrieved from the master queue comprises a "net update with wire delay" event.
Claim 18
Dependent Claim 43 words
A program storage device as defined in claim 13, wherein the wire delay sink value update event is scheduled by the machine to occur at a simulation time clock value in the future that accounts for a wire delay time of the net.
Claim 19
Dependent Claim 50 words
A program storage device as defined in claim 13, wherein the step of placing a compute event performed by the machine further inches placing a wire delay propagate compute event on the master queue that calculates a net output value and accounts for a wire delay time of the net.
Claim 20
Dependent Claim 155 words
A program storage device as defined in claim 13, wherein the step of performing update processing in accordance with the retrieved update event comprises calling a processing routine that performs one of either a "single source, without wire delay" process that determines an output value for a net having a single source, without considering a wire delay value, a "multi-source, without wire delay" process that determines an output value for a net having multiple sources, without considering a wire delay value, a "single source, with wire delay" process that determines an output value for a net having a single source, and considers a wire delay value, a "multi-source, with wire delay" process that determines an output value for a net having multiple sources, and considers a wire delay value, or "a wire delay sink value" process that determines the output value of a net, taking into consideration a specified wire delay value for the net.
Claim 21
Dependent Claim 67 words
A program storage device as defined in claim 16, wherein the "wire delay sink value" process comprises the steps of: determining the output value of a net at a current simulation clock time by updating the input pin value of the logic circuit block connected to the net; and causing a compute event to be scheduled for the logic circuit block at the current simulation clock time.
Claim 22
Dependent Claim 79 words
A program storage device as defined in claim 13, wherein the step of calling a compute processor in accordance with the retrieved compute event comprises calling a processing routine that performs either a "circuit component" process that determines the output value of a logic circuit component or a "wire delay propagate" process that determines the output value of a net and the simulation clock time at which the output value should appear at the sink end of the net.
Claim 23
Dependent Claim 21 words
A program storage device as defined in claim 13, wherein the program of executable instructions comprise a data storage drive disk.

References Cited (Backward Citations)

US4924430A Cited
US5572437A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-08-04 2001-02-03 2001-08-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-08-04 2005-02-03 2005-08-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-08-04 2009-02-03 2009-08-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag