Targeted delay optimization through programmable clock delays
First Claim
1. A computer-implemented method of processing a circuit design, comprising:
- performing operations on a processor including;
determining a timing violation of a target cell coupled to receive a clock signal through a first clock leaf of a plurality of clock leaves of the circuit design;
determining a first set of slacks of a plurality of cells, including the target cell, coupled to receive the clock signal through the first clock leaf, wherein slacks of the first set are based on a current delay value specified for a first programmable delay circuit of the first clock leaf;
predicting a second set of slacks of the cells based on another delay value specified for the first programmable delay circuit of the first clock leaf, wherein the other delay value is sufficient to resolve the timing violation of the target cell;
determining whether or not the second set of slacks indicates a degradation in timing relative to the first set of slacks;
adjusting the current delay value of the first programmable delay circuit of the first clock leaf to the other delay value in response to determining the second set of slacks indicates no degradation in timing relative to the first set of slacks; and
reconnecting the target cell to receive the clock signal from a second clock leaf having a second programmable delay circuit specified with the other delay value in response to determining the second set of slacks indicates degradation in timing relative to the first set of slacks.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed approaches for processing a circuit design include determining first slacks of cells, including a target cell, coupled to receive a clock signal through a first clock leaf. The first slacks are based on a current delay value specified for a first programmable delay circuit. The method predicts second slacks of the cells based on another delay value specified for the first programmable delay circuit, and then determines whether or not the second slacks indicate a degradation in timing relative to the first slacks. The current delay value of the first programmable delay circuit is adjusted to the other delay value in response to determining the second slacks indicates no degradation in timing. The target cell is reconnected to receive the clock signal from a second clock leaf having a second programmable delay circuit specified with the other delay value in response to determining the second slacks indicates degradation in timing.
29 Citations
20 Claims
-
1. A computer-implemented method of processing a circuit design, comprising:
performing operations on a processor including; determining a timing violation of a target cell coupled to receive a clock signal through a first clock leaf of a plurality of clock leaves of the circuit design; determining a first set of slacks of a plurality of cells, including the target cell, coupled to receive the clock signal through the first clock leaf, wherein slacks of the first set are based on a current delay value specified for a first programmable delay circuit of the first clock leaf; predicting a second set of slacks of the cells based on another delay value specified for the first programmable delay circuit of the first clock leaf, wherein the other delay value is sufficient to resolve the timing violation of the target cell; determining whether or not the second set of slacks indicates a degradation in timing relative to the first set of slacks; adjusting the current delay value of the first programmable delay circuit of the first clock leaf to the other delay value in response to determining the second set of slacks indicates no degradation in timing relative to the first set of slacks; and reconnecting the target cell to receive the clock signal from a second clock leaf having a second programmable delay circuit specified with the other delay value in response to determining the second set of slacks indicates degradation in timing relative to the first set of slacks. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A computer-implemented method of processing a circuit design, comprising:
performing operations on a programmed processor including; identifying one or more critical timing paths having respective timing violations based on a first frequency of a clock signal, wherein a respective target cell on each critical timing path is coupled to receive the clock signal through a first clock leaf of a plurality of clock leaves of the circuit design; for each respective target cell of the one or more critical timing paths, performing operations including; determining a first set of slacks of a plurality of cells, including the target cell, coupled to receive the clock signal through the first clock leaf, wherein the slacks of the first set are based on a current delay value specified for a first programmable delay circuit of the first clock leaf; predicting a second set of slacks of the plurality of cells based on another delay value specified for the first programmable delay circuit, wherein the other delay value is sufficient to resolve the respective timing violation; determining whether or not the second set of slacks indicates a degradation in timing relative to the first set of slacks; adjusting the current delay value of the first programmable delay circuit to the other delay value in response to determining the second set of slacks indicates no degradation in timing relative to the first set of slacks; and reconnecting the target cell to receive the clock signal through a second clock leaf having a second programmable delay circuit specified with the other delay value in response to determining the second set of slacks indicates degradation in timing relative to the first set of slacks; and repeating the identifying and the performing operations for each respective target cell for a second frequency of the clock signal that is greater than the first frequency. - View Dependent Claims (12, 13, 14, 15, 16)
-
17. A system, comprising:
a computer system including; a processor; and a memory configured with instructions that when executed by the processor cause the processor to perform operations including; determining a timing violation of a target cell coupled to receive a clock signal through a first clock leaf of a plurality of clock leaves of the circuit design; determining a first set of slacks of a plurality of cells, including the target cell, coupled to receive the clock signal through the first clock leaf, wherein slacks of the first set are based on a current delay value specified for a first programmable delay circuit of the first clock leaf; predicting a second set of slacks of the cells based on another delay value specified for the first programmable delay circuit, wherein the other delay value is sufficient to resolve the timing violation of the target cell; determining whether or not the second set of slacks indicates a degradation in timing relative to the first set of slacks; adjusting the current delay value of the first programmable delay circuit to the other delay value in response to determining the second set of slacks indicates no degradation in timing relative to the first set of slacks; and reconnecting the target cell to receive the clock signal from a second clock leaf having a second programmable delay circuit specified with the other delay value, in response to determining the second set of slacks indicate degradation in timing relative to the first set of slacks. - View Dependent Claims (18, 19, 20)
Specification