US5581738A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for back-annotating timing constraints into simulation models of field programmable gate arrays
Assignee: Xilinx Inc
•
Filing: 1993-06-07
•
Granted: 1996-12-03
•
Expires: 2013-06-07
Abstract
Abstract A method and apparatus for back-annotating timing constraints onto a logical simulation model of a field programmable gate array circuit includes a process and system for creating equations relating to the sequence of nodes between an input and output or clock input in the logical circuit and equating this to the external timing characteristics of the FPGA circuit. This linear system of equations can then be solved to obtain the individual timing constraints for each node of the circuit within the simulation model.
Inventors
- 👤 Peter F. Dombrowski
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 12:03
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/33
Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
252 words
In a computer system comprising a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, a process for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said process comprising the computer implemented steps of: receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design including a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, wherein said translating further comprises the computer implemented steps of: characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; forming one or more linear equations using said nodes and said pin-to-pin timing constraints; grouping said one or more of said linear equations into a system of linear equations; solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell; and storing in said memory said timing constraints obtained in said step of solving.
Claim 2
Dependent Claim
252 words
In a computer system comprising a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, a process for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said process comprising the computer implemented steps of: receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design including a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, wherein said translating further comprises the computer implemented steps of: characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; forming one or more linear equations using said nodes and said pin-to-pin timing constraints; grouping said one or more of said linear equations into a system of linear equations; solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell; and storing in said memory said timing constraints obtained in said step of solving.
Claim 3
Dependent Claim
52 words
A process as defined in claim 1 wherein said step of forming equations further comprises the step of: creating at least one equation representing a DELAY timing constraint, said DELAY timing constraint representing a delay between one of said set of inputs and one of said set of outputs of said primitives.
Claim 4
Dependent Claim
64 words
A process as defined in claim 1 wherein said set of inputs includes a clock input and said step of forming equations further comprises the step of: creating at least one equation representing a SETUP timing constraint, said SETUP timing constraint representing a minimum allowable time between a change on one of said set of inputs and an active edge of said clock input.
Claim 5
Dependent Claim
64 words
A process as defined in claim 1 wherein said set of inputs comprises a clock input and said step of forming equations further comprises the step of: creating at least one equation representing a HOLD timing constraint, said HOLD timing constraint representing a minimum allowable time between an active edge of said clock input and a change on one of said set of inputs.
Claim 6
Dependent Claim
106 words
A process as defined in claim 1 wherein said set of inputs are digital signals having a rising edge and a falling edge and said step of forming equations further comprises the steps of: identifying those of said primitives which have rising active edges and those of said primitives which have falling active edges; creating equations involving timing constraints associated with those of said primitives which have rising active edges; and creating equations involving those of said primitives which have falling active edges which are separate from, but correspond to, said equations involving timing constraints associated with those of said primitives which have rising active edges.
Claim 7
Dependent Claim
76 words
A process as defined in claim 1 wherein said system of linear equations is grouped into columns and rows where each row represents a separate equation and each column represents one of said nodes, said nodes being common to each equation, said grouping step further comprising the steps of: prioritizing the columns based upon said predetermined characteristics of the nodes therein; and sorting the columns by priority to arrange the columns in descending order of priority.
Claim 8
Dependent Claim
48 words
A process as defined in claim 6, said solving step further comprising the steps of: checking the timing constraints obtained against said allowable values of timing constraints to determine if any non-allowable values have been obtained; and permuting columns containing non-allowable values until said non-allowable values are eliminated.
Claim 9
Dependent Claim
359 words
In a computer system comprising a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, a process for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said process comprising the computer implemented steps of: receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design including a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints associated said plurality of primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, wherein said translating further comprises the computer implemented steps of: characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; forming one or more linear equations using said nodes and said pin to-pin timing constraints; grouping said one or more of said linear equations into a system of linear equations wherein said system of linear equations is grouped into columns and rows where each row represents a separate equation and each column represents one of said nodes, said nodes being common to each equation, said grouping step further comprising: prioritizing the columns based upon said predetermined characteristics of the nodes therein; sorting the columns by priority to arrange the columns in descending order of priority; solving the linear system of equations to obtain the timing constraints for the individual primitives mapped into said individual cell, said step of solving further comprising: checking the timing constraints obtained against said allowable values of timing constraints to determine if any non-allowable values have been obtained; and permuting columns containing non-allowable values until said non-allowable values are eliminated; and storing in said memory said timing constraints obtained in said step of solving.
Claim 10
Dependent Claim
359 words
In a computer system comprising a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, a process for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said process comprising the computer implemented steps of: receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design including a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints associated said plurality of primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, wherein said translating further comprises the computer implemented steps of: characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; forming one or more linear equations using said nodes and said pin to-pin timing constraints; grouping said one or more of said linear equations into a system of linear equations wherein said system of linear equations is grouped into columns and rows where each row represents a separate equation and each column represents one of said nodes, said nodes being common to each equation, said grouping step further comprising: prioritizing the columns based upon said predetermined characteristics of the nodes therein; sorting the columns by priority to arrange the columns in descending order of priority; solving the linear system of equations to obtain the timing constraints for the individual primitives mapped into said individual cell, said step of solving further comprising: checking the timing constraints obtained against said allowable values of timing constraints to determine if any non-allowable values have been obtained; and permuting columns containing non-allowable values until said non-allowable values are eliminated; and storing in said memory said timing constraints obtained in said step of solving.
Claim 11
Dependent Claim
205 words
A process as defined in claim 8, said computer implemented step of forming one or more linear equations further comprising the computer implemented steps of: creating at least one equation representing a DELAY timing constraint, said DELAY timing constraint representing the delay between one of said set of inputs and one of said set of outputs of said primitives; creating at least one equation representing a SETUP timing constraint, said SETUP timing constraint representing a minimum allowable time between a change on one of said set of inputs and an active edge of said clock input; creating at least one equation representing a HOLD timing constraint, said HOLD timing constraint representing a minimum allowable time between a change on one of said set of inputs and an inactive edge of said clock input; identifying those of said primitives which have rising active edges and those of said primitives which have falling active edges; creating equations involving timing constraints associated with those of said primitives which have rising active edges; and creating equations involving those of said primitives which have falling active edges which are separate from, but correspond to, said equations involving timing constraints associated with those of said primitives which have rising active edges.
Claim 12
Dependent Claim
277 words
In a computer system comprising a processor, a memory and an input/output device, a system for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said system comprising: computer implemented means for receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design comprising a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; computer implemented translating means for translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, said translating means further comprising: computer implemented means for characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; computer implemented means for forming one or more linear equations using said nodes and said pin-to-pin timing constraints; computer implemented means operatively associated with said means for forming one or more linear equations for grouping the equations into a system of linear equations; computer implemented means operatively associated with the grouping means for solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell; and computer implemented means operatively associated with said solving means for storing in said memory said timing constraints obtained in said step of solving.
Claim 13
Dependent Claim
277 words
In a computer system comprising a processor, a memory and an input/output device, a system for accurately distributing time delays in a simulation model of a programmable logic device containing a plurality of cells, said system comprising: computer implemented means for receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design comprising a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; computer implemented translating means for translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, said translating means further comprising: computer implemented means for characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; computer implemented means for forming one or more linear equations using said nodes and said pin-to-pin timing constraints; computer implemented means operatively associated with said means for forming one or more linear equations for grouping the equations into a system of linear equations; computer implemented means operatively associated with the grouping means for solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell; and computer implemented means operatively associated with said solving means for storing in said memory said timing constraints obtained in said step of solving.
Claim 14
Dependent Claim
53 words
A system as defined in claim 10 wherein said computer implemented means for forming equations further comprises: means for creating at least one equation representing a DELAY timing constraint, said DELAY timing constraint representing the delay between one of said set of inputs and one of said set of outputs of said primitives.
Claim 15
Dependent Claim
65 words
A system as defined in claim 10 wherein said set of inputs includes a clock input and said computer implemented means for forming equations further includes: means for creating at least one equation representing a SETUP timing constraint, said SETUP timing constraint representing a minimum allowable time between a change on one of said set of inputs and an active edge of said clock input.
Claim 16
Dependent Claim
65 words
A system as defined in claim 10 wherein said set of inputs comprises a clock input and said computer implemented means for forming equations further comprises: means for creating at least one equation representing a HOLD timing constraint, said HOLD timing constraint representing a minimum allowable time between an active edge of said clock input and a change on one of sold set of inputs.
Claim 17
Dependent Claim
92 words
A system as defined in claim 10 wherein said set of inputs are digital signals having a rising edge and a falling edge and said computer implemented means for forming equations further comprises: means for identifying those of said primitives which have rising active edges and those of said primitives which have falling active edges; means for creating equations involving those of said primitives which have falling active edges which are separate from, but correspond to, said equations involving timing constraints associated with those of said primitives which have rising active edges.
Claim 18
Dependent Claim
82 words
A system as defined in claim 10 wherein said system of linear equations is grouped into columns and rows where each row represents a separate equation and each column represents one of said nodes, common to each equation, said computer implemented grouping means further comprising: means for prioritizing the columns based upon said predetermined characteristics of the nodes therein; and means operatively associated with said prioritizing means for sorting the columns by priority to arrange the columns in descending order of priority.
Claim 19
Dependent Claim
57 words
A system as defined in claim 15, said computer implemented solving means further comprising: means for checking the timing constraints obtained against said allowable values of timing constraints to determine if any non-allowable values have been obtained; and means operatively associated with said checking means for permuting columns containing non-allowable values until said non-allowable values are eliminated.
Claim 20
Dependent Claim
283 words
A computer system for accurately distributing timing delays in a simulation model of a programmable logic device containing a plurality of cells, said computer system comprising: a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, wherein said processor is programmed to implement: logic receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design comprising a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; logic translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, said logic translating said pin-to-pin timing constraints also comprising: logic characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; logic forming one or more linear equations using said nodes and said pin-to-pin timing constraints; logic grouping the equations into a system of linear equations, said grouping logic operatively associated with said logic forming one or more linear equations; logic solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell, said solving logic operatively associated with said grouping logic; and logic storing in said memory said timing constraints obtained in said step of solving, said storing logic operatively associated with said solving logic.
Claim 21
Dependent Claim
283 words
A computer system for accurately distributing timing delays in a simulation model of a programmable logic device containing a plurality of cells, said computer system comprising: a processor coupled to a bus, a memory coupled to said bus and an input/output device coupled to said bus, wherein said processor is programmed to implement: logic receiving and storing in said memory timing information characteristic of said programmable logic device being programmed by mapping, placing and routing an abstract representation of a logic design comprising a plurality of primitives into the programmable logic device, said timing information comprising: allowable values of timing constraints of said primitives; and pin-to-pin timing constraints associated with an individual cell of said plurality of cells; logic translating said pin-to-pin timing constraints associated with an individual cell of said plurality of cells into timing constraints associated with individual primitives mapped into said individual cell, said primitives having a set of inputs and a set of outputs, said logic translating said pin-to-pin timing constraints also comprising: logic characterizing as nodes the inputs and outputs of said sets of inputs and outputs of said primitives, said nodes having predetermined characteristics; logic forming one or more linear equations using said nodes and said pin-to-pin timing constraints; logic grouping the equations into a system of linear equations, said grouping logic operatively associated with said logic forming one or more linear equations; logic solving the system of linear equations to obtain the timing constraints for the individual primitives mapped into said individual cell, said solving logic operatively associated with said grouping logic; and logic storing in said memory said timing constraints obtained in said step of solving, said storing logic operatively associated with said solving logic.
Claim 22
Dependent Claim
53 words
A system as defined in claim 17 wherein said logic forming one or more linear equations further comprises: logic creating at least one equation representing a DELAY timing constraint, said DELAY timing constraint representing the delay between one of said set of inputs and one of said set of outputs of said primitives.
Claim 23
Dependent Claim
65 words
A system as defined in claim 17 wherein said set of inputs includes a clock input and said logic forming one or more linear equations further includes: logic creating at least one equation representing a SETUP timing constraint, said SETUP timing constraint representing a minimum allowable time between a change on one of said set of inputs and an active edge of said clock input.
Claim 24
Dependent Claim
65 words
A system as defined in claim 17 wherein said set of inputs comprises a clock input and said logic forming one or more linear equations further comprises: logic creating at least one equation representing a HOLD timing constraint, said HOLD timing constraint representing a minimum allowable time between a change on one of said set of inputs and an inactive edge of said clock input.
Claim 25
Dependent Claim
91 words
A system as defined in claim 17 wherein said set of inputs are digital signals having a rising edge and a falling edge and said logic forming one or more linear equations further comprises: logic identifying those of said primitives which have rising active edges and those of said primitives which have falling active edges; logic creating equations involving those of said primitives which have falling active edges which are separate from, but correspond to, said equations involving timing constraints associated with those of said primitives which have rising active edges.
Claim 26
Dependent Claim
81 words
A system as defined in claim 17 wherein said system of linear equations is grouped into columns and rows where each row represents a separate equation and each column represents one of said nodes, common to each equation, said grouping logic further comprising: logic prioritizing the columns based upon said predetermined characteristics of the nodes therein; and logic sorting the columns by priority to arrange the columns in descending order of priority, said sorting logic operatively associated with said prioritizing logic.
Claim 27
Dependent Claim
56 words
A system as defined in claim 22, said solving logic further comprising: logic checking the timing constraints obtained against said allowable values of timing constraints to determine if any non-allowable values have been obtained; and logic permuting columns containing non-allowable values until said non-allowable values are eliminated, said permuting logic operatively associated with said checking logic.
References Cited (Backward Citations)
US4698760A
Cited
US5095454A
Cited
US5210700A
Cited
US5218551A
Cited
US5258932A
Cited
US5278769A
Cited
US5383167A
Cited
US5369604A
Cited
US5302865A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-12-03 | 2000-06-03 | 2000-12-03 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-12-03 | 2004-06-03 | 2004-12-03 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-12-03 | 2008-06-03 | 2008-12-03 | $7700.00 | Window Closed / Lapsed |