Modeling asynchronous behavior from primary inputs and latches
First Claim
Patent Images
1. A method of modeling asynchronous behavior of a circuit stored as a netlist in a computer system, comprising:
- identifying at least one driving element in a netlist for the circuit wherein the driving element has an output which is connected to downstream logic; and
modifying the stored netlist by inserting additional logic whose output is based on a combination of a present output from the driving element, a delayed output from the driving element, and a random value, to drive the downstream logic, wherein the delayed output from the driving element is delayed with respect to the present driving element output by a number of cycles n which is a minimum of a send clock period of the driving element and a receive clock period of the downstream logic, and wherein the additional logic includesa random value generator having an output,a multiplexer having at least two inputs, a first input of the multiplexer being connected to the present output from the driving element, and a second input of the multiplexer being connected to the output of the random value generator, the multiplexer further having an output which drives the downstream logic,an XOR gate having at least two inputs, a first input of the XOR gate being connected to the present output from the driving element, and a second input of the XOR gate being connected to the delayed output from the driving element, andan AND gate having at least two inputs, a first input of the AND gate being connected to an output of the XOR gate, and a second input of the AND gate being connected to a user-controlled skew enable signal, the AND gate further having an output which controls a select line of the multiplexer.
1 Assignment
0 Petitions
Accused Products
Abstract
Asynchronous behavior of a circuit is emulated by modifying a netlist to insert additional logic at a driving element such as a latch. The additional logic outputs one of (i) a present output from the driving element, (ii) a delayed output from the driving element, or (iii) a random value, which drives downstream logic. The output of the additional logic is selectively responsive to a user-controlled skew enable input. The invention allows for simpler data skew logic transformations which are applicable to both latches and primary inputs, with no dependencies on any clock net.
-
Citations
3 Claims
-
1. A method of modeling asynchronous behavior of a circuit stored as a netlist in a computer system, comprising:
-
identifying at least one driving element in a netlist for the circuit wherein the driving element has an output which is connected to downstream logic; and modifying the stored netlist by inserting additional logic whose output is based on a combination of a present output from the driving element, a delayed output from the driving element, and a random value, to drive the downstream logic, wherein the delayed output from the driving element is delayed with respect to the present driving element output by a number of cycles n which is a minimum of a send clock period of the driving element and a receive clock period of the downstream logic, and wherein the additional logic includes a random value generator having an output, a multiplexer having at least two inputs, a first input of the multiplexer being connected to the present output from the driving element, and a second input of the multiplexer being connected to the output of the random value generator, the multiplexer further having an output which drives the downstream logic, an XOR gate having at least two inputs, a first input of the XOR gate being connected to the present output from the driving element, and a second input of the XOR gate being connected to the delayed output from the driving element, and an AND gate having at least two inputs, a first input of the AND gate being connected to an output of the XOR gate, and a second input of the AND gate being connected to a user-controlled skew enable signal, the AND gate further having an output which controls a select line of the multiplexer.
-
-
2. A computer system comprising:
-
one or more processors which process program instructions; a memory device connected to said one or more processors; and program instructions residing in said memory device for modeling asynchronous behavior of a circuit by identifying at least one driving element in a netlist for the circuit wherein the driving element has an output which is connected to downstream logic, and modifying the netlist to insert additional logic whose output is based on a combination of a present output from the driving element, a delayed output from the driving element, and a random value, to drive the downstream logic, wherein the delayed output from the driving element is delayed with respect to the present driving element output by a number of cycles n which is a minimum of a send clock period of the driving element and a receive clock period of the downstream logic, and wherein the additional logic includes a random value generator having an output, a multiplexer having at least two inputs, a first input of the multiplexer being connected to the present output from the driving element, and a second input of the multiplexer being connected to the output of the random value generator, the multiplexer farther having an output which drives the downstream logic, an XOR gate having at least two inputs, a first input of the XOR gate being connected to the present output from the driving element, and a second input of the XOR gate being connected to the delayed output from the driving element, and an AND gate having at least two inputs, a first input of the AND gate being connected to an output of the XOR gate, and a second input of the AND gate being connected to a user-controlled skew enable signal, the AND gate further having an output which controls a select line of the multiplexer.
-
-
3. A computer program product comprising:
-
a computer-readable medium; and program instructions residing in said medium for modeling asynchronous behavior of a circuit stored as a netlist in a computer system by identifying at least one driving element in a netlist for the circuit wherein the driving element has an output which is connected to downstream logic, and modifying the stored netlist to insert additional logic whose output is based on a combination of a present output from the driving element, a delayed output from the driving element, and a random value, to drive the downstream logic, wherein the delayed output from the driving element is delayed with respect to the present driving element output by a number of cycles n which is a minimum of a send clock period of the driving element and a receive clock period of the downstream logic, and wherein the additional logic includes a random value generator having an output, a multiplexer having at least two inputs, a first input of the multiplexer being connected to the present output from the driving element, and a second input of the multiplexer being connected to the output of the random value generator, the multiplexer further having an output which drives the downstream logic, an XOR gate having at least two inputs, a first input of the XOR gate being connected to the present output from the driving element, and a second input of the XOR gate being connected to the delayed output from the driving element, and an AND gate having at least two inputs, a first input of the AND gate being connected to an output of the XOR gate, and a second input of the AND gate being connected to a user-controlled skew enable signal, the AND gate further having an output which controls a select line of the multiplexer.
-
Specification