The present disclosure relates to the design of semiconductor integrated circuits, and more particularly, to methods for improving performance of a semiconductor integrated circuit by simulating characteristics of the circuit based on process information etc. using a computer.
In the design of semiconductor integrated circuits, the progress of miniaturization has increased an influence of process variations on circuit characteristics. Therefore, there have been techniques (hereinafter referred to as statistical delay analysis techniques) of representing variations in a delay in each element included in a semiconductor integrated circuit by a normal distribution, and estimating a delay distribution of the entire circuit using a statistical calculation.
A statistical delay analysis technique has been proposed in Japanese Patent Publication No. 2002-279012. In Japanese Patent Publication No. 2002-279012, a distribution of maximum delays can be statically calculated for a CMOS combinational circuit, taking into consideration correlations between delays of devices, interconnects, and paths.
Here, the input and output terminals of the entire circuit and the input and output terminals of logic gates correspond to vertices v in the graph. Each vertex v includes two vertices v0 and v1 in the graph. In
A vertex corresponding to an input terminal of the entire circuit is referred to as a source, which has no incoming edge, and a vertex corresponding to an output terminal of the entire circuit is referred to as a sink, which has no outgoing edge. A set (25) of sources is represented by S and a set (26) of sinks is represented by T. A sequence of vertices from a source to a sink in the graph G is referred to as a path (or a directed path). In
The maximum delays d0(v) and d1(v) of each terminal v of the circuit are caused to correspond to maximum path lengths d(v0) and d(v1) from a sink to the O-vertex (v0) and 1-vertex (v1) of the vertex v in the graph G, respectively. Therefore, for each edge e=(u, v) where u and v represent the start vertex and end vertex of the edge, a delay required to transfer a signal value from u to w is given as a weight t(e) for the edge e.
By performing simulation using such an acyclic graph, delays in a logic circuit can be analyzed by a relatively simple procedure.
On the other hand, Japanese Patent Publication No. 2007-304957 describes a technique of improving a circuit based on a finding that there is a correlation between the probability distributions of a delay time and a transition time input to each cell. Specifically, delay information is calculated by delay distribution calculation means, and timing analysis is performed based on the delay information.
However, in order to improve the design performance of LSI, it is necessary to accurately find and improve a device or interconnect which has an influence on a critical path delay. To this end, it is necessary to accurately estimate the probability that each device or interconnect becomes a portion of a critical path.
When a signal f is calculated in the circuit of
On the other hand, Japanese Patent Publication No. 2007-304957 describes a technique of accurately calculating a delay distribution using a correlation information between a delay and an input transition time etc. However, when circuit improvement candidates are selected, a correlation between path delays cannot be taken into consideration. In other words, no matter how much the accuracy of analysis of a delay distribution is increased, the circuit improvement cannot be accurately performed, and therefore, only a delay improvement effect that is smaller than an estimation is obtained in delay distribution calculation after circuit modification. If the circuit modification and the delay distribution calculation are repeatedly performed an excessive number of times, the design period increases, or f the circuit is excessively modified, the area or power consumption of the semiconductor integrated circuit becomes unreasonably high.
The present disclosure describes implementations of a technique of accurately reducing the maximum delay of a combinational circuit in consideration of a correlation between variations in delays of devices (transistors etc.) and interconnects.
An example circuit analysis method according to the present disclosure is a method for analyzing a semiconductor integrated circuit, comprising obtaining circuit information about a circuit to be designed, obtaining technology information about a distribution of a characteristic of a device and/or an interconnect based on a process to be designed, obtaining delay distribution information about a distribution of a delay in the circuit to be designed, obtaining delay correlation information about a correlation between variations in the delay in the circuit to be designed, and generating circuit modification candidate information about a circuit modification candidate for improving the delay in the circuit to be designed, based on the circuit information, the technology information, the delay distribution information, and the delay correlation information.
According to the example circuit analysis method, a circuit modification candidate for improving the delay in the circuit to be designed can be accurately estimated, whereby cost, such as an area, power consumption, etc., can be reduced.
According to the present disclosure, a portion of a circuit to be improved is extracted in consideration of delay correlation information in order to reduce a maximum delay or correct a delay constraint violation, whereby an improvement candidate can be more accurately estimated. Specifically, the number of times of circuit improvement to achieve correction of the delay constraint violation can be advantageously reduced, or the cost, such as an area, power consumption, etc., can be reduced to a greater extent in a semiconductor integrated circuit at the time that the circuit improvement is completed.
Preferred embodiments will be described hereinafter with reference to the accompanying drawings.
A circuit analysis program according to this embodiment may be stored in an information processing apparatus (e.g., a PC etc.), and a server apparatus which can be used by a terminal apparatus via a network. The program may be recorded and distributed in the form of various recording media, such as a CD-ROM, a DVD-ROM, a flash memory, etc. If the recording medium is loaded into and read out by an information processing apparatus, such as a PC etc., or the program is previously stored in a storage medium included in an information processing apparatus and is read out when necessary, a function relating to the program can be carried out. A flow of a process performed based on the program will be described hereinafter.
The technology information 200 of
Delay Distribution Calculation (ST100)
In the delay distribution calculation process ST100 of
the average and standard deviation of delays at an input terminal A of an instance 1 are 0 and 0, respectively,
the average and standard deviation of delays at an input terminal B of the instance 1 are 0 and 0, respectively,
the average and standard deviation of delays at an input terminal A of an instance 2 are 0.5 and 0.1, respectively,
the average and standard deviation of delays at an input terminal B of the instance 2 are 0.6 and 0.1, respectively,
the average and standard deviation of delays at an input terminal A of an instance 3 are 3.0 and 0.2, respectively, and
the average and standard deviation of delays at an input terminal B of the instance 3 are 4.0 and 0.3, respectively.
0 at the input terminal A of the instance 1,
0 at the input terminal B of the instance 1,
0.2 at the input terminal A of the instance 2,
0.3 at the input terminal B of the instance 2,
2.4 at the input terminal A of the instance 3, and
2.8 at the input terminal B of the instance 3,
a representative value (Typ) of the delays is
0 at the input terminal A of the instance 1,
0 at the input terminal B of the instance 1,
0.5 at the input terminal A of the instance 2,
0.6 at the input terminal B of the instance 2,
3.0 at the input terminal A of the instance 3, and
4.0 at the input terminal B of the instance 3, and
the maximum value (Max) of the delays is
0 at the input terminal A of the instance 1,
0 at the input terminal B of the instance 1,
0.8 at the input terminal A of the instance 2,
0.9 at the input terminal B of the instance 2,
3.6 at the input terminal A of the instance 3, and
5.2 at the input terminal B of the instance 3.
In the delay calculation, typically, the maximum value (Max) and minimum value (Min) of delays are assumed to μ+3σ and μ−3σ, respectively, where μ is the average value of the delays and σ is the standard deviation of the delays. Alternatively, a different definition may be used. The typical value (Typ) may be an average value, a target value of a process, or a value having a highest probability.
a correlation coefficient (relative coefficient) between delays at the input terminal A of the instance 1 and delays at the input terminal B of the instance 1 is 0.3,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal A of the instance 2 is 0.3,
a correlation coefficient between delays at the input terminal B of the instance 1 and delays at the input terminal A of the instance 2 is 1,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal A of the instance 3 is 0.5,
a correlation coefficient between delays at the input terminal A of the instance 2 and delays at the input terminal B of the instance 3 is 0.2, and
a correlation coefficient between delays at the input terminal B of the instance 2 and delays at the input terminal B of the instance 3 is 0.6.
Correlation coefficients for the other combinations are zero, or correlation relationships of the other combinations are negligible.
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal B of the instance 1 is 0.3,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal A of the instance 2 is 0.3,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal B of the instance 2 is 0,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal A of the instance 3 is 0.5,
a correlation coefficient between delays at the input terminal A of the instance 1 and delays at the input terminal B of the instance 3 is 0,
a correlation coefficient between delays at the input terminal B of the instance 1 and delays at the input terminal A of the instance 2 is 1,
a correlation coefficient between delays at the input terminal B of the instance 1 and delays at the input terminal B of the instance 2 is 0,
a correlation coefficient between delays at the input terminal B of the instance 1 and delays at the input terminal A of the instance 3 is 0,
a correlation coefficient between delays at the input terminal B of the instance 1 and delays at the input terminal B of the instance 3 is 0,
a correlation coefficient between delays at the input terminal A of the instance 2 and delays at the input terminal B of the instance 2 is 0,
a correlation coefficient between delays at the input terminal A of the instance 2 and delays at the input terminal A of the instance 3 is 0,
a correlation coefficient between delays at the input terminal A of the instance 2 and delays at the input terminal B of the instance 3 is 0.2,
a correlation coefficient between delays at the input terminal B of the instance 2 and delays at the input terminal A of the instance 3 is 0,
a correlation coefficient between delays at the input terminal B of the instance 2 and delays at the input terminal B of the instance 3 is 0.6, and
a correlation coefficient between delays at the input terminal A of the instance 3 and delays at the input terminal B of the instance 3 is 0.
Similar to the information items of
Extraction of Circuit Modification Candidate (ST200)
Generation of Graph (ST210)
In the graph generation process ST210, a graph is generated from the read circuit information 100 and is stored into the computer or a recording medium.
In an acyclic graph G={V, E}, a delay at an edge e (eεE) is represented by t(e). The delay t(e) is described in the technology information 200.
A delay at any vertex in a circuit is represented by x, the average and variance of a distribution of x are represented by μ and σ2, respectively, and delays at two edges e1 and e2 (e1, e2εE) are represented by x1=t(e1) and x2=t(e2), respectively. In this case, a correlation coefficient ρ(x1, x2) between any two edges x1 and x2 is calculated by the delay distribution calculation process ST100.
A source vs may be an output terminal of a flip-flop, or a clock. A maximum value of delays from the source vs to any vertex v (vεV) is referred to as a delay at the vertex v and is represented by d(v). The maximum value d(v) is also calculated by the technique described in Japanese Patent Publication No. 2002-279012 etc., and is represented as the delay distribution information 300. Also, d(e)=d(u)+t(e) for an edge e=(u, v) (eεE) from a vertex u to a vertex v is referred to as a delay at the end vertex of the edge e. The probability density functions of the delays d(v) and d(e) are represented by φv(x) and φe(x), respectively. It is known that φv(x) and φe(x) can typically be approximated by normal distributions represented by:
where μv and σv2 are the average and variance of d(vi), respectively, and μe and σe2 are the average and variance of d(e), respectively.
Calculation of Critical Edge (ST220)
Next, in a critical edge calculation process ST220, the probability that each signal is critical at a vertex (e.g., a multi-input cell etc.) where a plurality of signals merge together is calculated.
(Conditional Probability Density Function)
The probability that a condition cond is satisfied when d(v)=x is represented by Pv[cond](x). The normal distribution probability density function of a delay d(v) at a vertex v is represented by φv(x). The product of the probability density φv(x) when d(v)=x and the probability Pv[cond](x) that the condition cond is satisfied when d(v)=x, is referred to as a conditional probability density function of x under cond, and is represented by φv[cond](x). In this case, the following is satisfied by definition:
φv[cond](x)=φv(x)·Pv[cond](x) (3)
Therefore, when the probability density function φv(x) of d(v)=x, and the conditional probability density function φv[cond](x) of d(v)=x under cond, are known, the probability Pv[cond](x) that the condition cond is satisfied when d(v)=x can be calculated by:
The probability P[cond] that the condition cond is satisfied is obtained by integrating, over the entire region, the product of the probability Pv[cond](x) that cond is satisfied when d(v)=x and the probability density φv(x) of d(v)=x, and therefore, a relationship represented by Expression 5 is established. On the other hand, when a typical probability density function is integrated over the entire region, the resultant value is 1.
Here, a negation of the condition cond is represented by /cond. The sum of the probability Pv[cond](x) that cond is satisfied when d(v)=x and the probability Pv[/cond](x) that cond is not satisfied when d(v)=x is 1. This is represented by:
P
v[cond](x)+Pv[/cond](x)=1 (6)
The following expressions are satisfied using Expression 6:
Here, the condition that x>c (c is a constant) will be described. In this case, the probability Pv[x>c](x) that the condition x>c is satisfied when d(v)=x is represented by:
P
v[x>c](x)=u(x−c) (9)
where u(x) is a step function of x.
Therefore, the conditional probability density function φv[x>c](x) of d(v)=x under x>c is represented by:
φv[x>c](x)=φv(x)·u(x−c) (10)
The probability Pv[/(x>c)](x) that x>c is not satisfied when d(v)=x is represented by:
P
v[/(x>c)](x)=1−u(x−c) (11)
Therefore, the following expressions are established:
Here, it is assumed that there are two independent conditions cond1 and cond2. The probability Pv[cond1 & cond2](x) that cond1 and cond2 are satisfied is represented by the product of Pv[cond1](x) and Pv[cond2](x):
P
v[cond1&cond2](x)=Pv[cond1](x)·Pv[cond 2](x) (15)
The conditional probability density function φv[cond1 & cond2](x) of x under cond1 and cond2 is represented by:
Calculation of Critical Edge (ST220)
For a given vertex v, a set of edges entering v is represented by ev={e1, . . . , ek, . . . , en}. An edge having the largest of delays d(e1), . . . , and d(en) at the end vertices of the edges entering the vertex v is referred to as a critical edge. In other words, an edge ek=(u, v) entering the vertex v is a critical edge when the delay d(ek) at the end vertex of ek is larger than the delays d(e′) of the other edges e′=(u′, v) entering v. In this case, a delay at the end vertex of the critical edge is equal to a delay at the vertex v.
Now, the condition that an edge ek entering the vertex v is a critical edge is represented by ekεEce. When a delay at an edge ek is xk=d(ek), the probability P[ekεEce](xk) that the edge ek is a critical edge can be considered to be the probability that all delays xj=d(ej) at the edges ej (j=1, . . . , and n, j≠k) where x={x1, . . . , xn}={d(e1), . . . , d(en)} are smaller than or equal to xk. Therefore, the probability P[ekεEce](xk) can be represented by:
P
┌c
εE
┐=∫−∞∞∫−∞x
where φn(x) is a probability density function relating to an n-variate x={x1, . . . , xn}, which is known to be able to be generally approximated by a normal distribution function.
When n=1, when a delay at the edge e1 is x1=d(e1), the probability P[e1εEce](x1) that the edge e1 is a critical edge is represented by Expression 18. In other words, the edge e1 entering the vertex v is a critical edge.
P
[e
εE
]=∫−∞∞φn(x)dxk=∫−∞∞φ1(x1)dx1=1 (18)
The conditional probability density function φek[ekεEce](xk) of xk=d(ek) under ekεEce is represented by Expression 19, similar to Expression 17.
φe
Here, the n-variate normal distribution function φn(x) is represented by:
where (x−μ)T=(x1−μ1 x2−μ2 . . . xN−μN) is the transposed matrix of (x−μ), and σij is the inverse matrix of σij (σij=(σij)−1). The matrix σij is defined by:
Note that when n=1, the conditional probability density function φe1[e1εEce](x1) of x1=d(e1) under e1εEce is represented by:
φe
where φ1(x1) is the probability density function of x1=d(e1).
The calculation of Expression 19 includes integration, but can be simply performed using approximation represented by:
where F (F is a natural number) is the number of partitions in the integration calculation, a and b (a<b) are the lower and upper limits of the approximation calculation region, respectively, and d (>0) is the width of each partition in the integration calculation and is defined by Expression 24. When a→−∞ and b, F→−∞, the approximation error is zero.
d=(b−a)/F (24)
For all edges ek contained in the graph G, the conditional probability density function φek[ekεEce](xk) that the edge ek is a critical edge can be obtained by the following algorithm 1.
[Algorithm 1]
(1) The probability density functions φv(x) of delays at all vertices v (vεV) and the probability density functions φe(x) of delays at the end vertices of all edges e (eεE) in the acyclic graph G={V, E} are calculated by the technique of Japanese Patent Publication No. 2002-279012.
(2) A vertex v (vεV) is selected from the graph.
(3) For each of edges ek entering the selected vertex v, the conditional probability density function φek[ekεEce](xk) of a delay at the end vertex of the edge ek under the condition that the edge ek is a critical edge is calculated using Expression 19.
(4) (2) and (3) are applied to all the vertices.
According to Expressions 20 and 21, the complexity of calculation of the n-variate probability density function φn(x1, . . . , xn) is O(n2). Therefore, according to Expressions 19 and 23, the complexity of calculation of φek[ekεEce](xk) is O(n3×F). The complexity of calculation of the conditional probability density function φek[ekεEce](xk) of xk under the condition that an edge ek is a critical edge for all edges ek contained in the graph G is represented by
where N is the total number of edges contained in the graph G, i.e., a circuit size, and n(ek) is the number of edges entering the end vertex of an edge ek. Note that when the circuit size is large, i.e., N>>n(ek) and N>>F, the complexity of calculation of φek[ekεEce](xk) is O(N). Therefore, the calculation can be completed within a practical period of time.
Calculation of Critical Path Rate (ST230)
Next, in a critical path rate calculation process ST230, the probability that a vertex or edge in a graph is on a critical path is calculated. Note that a vertex or edge on a critical path corresponds to a device or interconnect on a critical path in a circuit to be designed.
(Definition of Critical Path)
In an acyclic graph G={V, E}, a path whose start vertex is a vertex vs corresponding to a source and whose end vertex is a vertex vt corresponding to a sink is referred to as a path p, which is represented by p={Ep, Vp}, where Ep={ep1, . . . , epj, . . . , epm} is a set of edges on the path p, Vp={vp0, . . . , vpj, . . . , vpm} is a set of vertices on the path p, vp0 is a vertex corresponding to the sink vt, and vpm is a vertex corresponding to the source vs. The edges are sequentially sorted from the sink to the source. Specifically, the start vertex and end vertex of an edge epj correspond to vpj and vp(j−1), respectively. A set of all paths in the graph G is represented by p={p1, . . . , pj, . . . , pn}, and the total sum of delays t(e) at all edges e on each path pj is referred to as a path delay of pj and is represented by t(pj). A path having the largest path delay t(pj) is referred to as a critical path. The condition that a vertex v is on a critical path and the condition that an edge e is on a critical path are represented by vεVcp and eεEcp, respectively.
Here, an edge e=(u, v) is said to be included in a critical path (eεEcp) if both the start vertex u and end vertex v of the edge e are included in the critical path (u, vεVcp) and the edge e is a critical edge (eεEce). On the other hand, a vertex v is said to be included in a critical path (vεVcp) if at least one of edges ei=(u, v) entering the vertex v is included in the critical path and at least one of edges eo=(v, w) leaving the vertex v is included in the critical path.
In this case, for a given vertex v, a set of edges leaving the vertex v is represented by eo={eo1, . . . , eoj, . . . , eom}, and a set of edges entering the vertex v is represented by ei={ei1, . . . , eik, . . . , ein}. The total sum of the probabilities P[eojεEcp] that an edge eoj leaving the vertex v is on a critical path is represented by:
The total sum of the probabilities P[eikεEcp] that an edge eik entering the vertex v is on a critical path is represented by:
Both the total sum of the probabilities P[eojεEcp] and the total sum of the probabilities P[eikεEcp] is equal to the probability P[vεVcp] that the vertex v is on a critical path. The probability P[vεVcp] is represented by:
The conditional probability density function of a delay d(v) at the vertex v under the condition that the vertex v (vεV) is on a critical path is represented by φv[vεVcp](x). The conditional probability density function of a delay at the vertex v under the condition that an edge eoj leaving the vertex v is on a critical path is represented by φv[eojεEcp](x). The conditional probability density function φv[vεVcp](x) of d(v)=x under the condition that the vertex v is on a critical path is equal to the total sum of the conditional probability densities φv[eojεEcp](x) of edges eoj leaving the vertex v under the condition that the edge eoj is on a critical path, which is represented by:
and is also equal to the total sum of the conditional probability densities φv[eojεEcp](x) of edges eik entering the vertex v under the condition that the edge eik is on a critical path, which is represented by:
(Calculation of Distribution of Conditional Probability Density)
The probability that a vertex v is on a critical path when a delay d(v) at the vertex v is x is represented by Pv[vεVcp](x), and the probability that an edge e is a critical edge when d(v)=x is represented by Pv[eεEce](x). Now, while it is determined whether or not an edge e entering a vertex v is a critical edge, based on a path from a source vs to the vertex v, it is determined whether or not a vertex v is on a critical path, based on all paths from a source vs to a sink vt. Therefore, for a vertex v close to a source vs (i.e., the smallest of the numbers of edges included in paths from vs to v is smaller than the smallest of the numbers of edges included in paths from vs to vt), it can be considered that “vεVcp when d(v)=x” and “eεEce when d(v)=x” are substantially independent from each other.
Therefore, according to Expression 15, the probability Pv[eεEce](x) that an edge e is on a critical path when a delay at the end vertex v of the edge e is d(v)=x is equal to the probability that vεVcp and eεEce, and therefore, is represented by:
P
v[eεE
](x)=Pv[vεV
When eεEcp or eεEce, a delay d(e) at the end vertex of the edge e is equal to the delay d(v) at the vertex v. Therefore, under the condition that eεEcp or eεEce, Expression 33 is established:
P
v[eεE
](x)=Pe[eεE
P
v[eεE
](x)=Pe[eεE
where Pe[vεVce](x) is the probability that the vertex v is on a critical path when the delay d(e) at the end vertex of the edge e is x, and Pe[eεEce](x) is the probability that the edge e is a critical edge when the delay d(e) at the end vertex of the edge e is x.
Therefore, Expression 32 is rewritten as:
P
e[eεE
](x)=Pv[vεV
Here, z=x+y is established, where x is a delay d(u) at the start vertex u of the edge e, z is the delay d(v) at the end vertex v of the edge e, and y is a delay t(e) at the edge e. Therefore, according to Expression 3, the conditional probability density function φu, t(e)[eεEcp](x, y) of x and y under eεEcp is represented by the product of the bivariate probability density function φu, t(e)(x, y) of x=d(u) and y=t(e) and the probability Pe[eεEcp](z) (=Pe[eεEcp](x+y)) that eεEcp is established:
φu,t(e)[eεE
Here, P[eεEcp](x, y) is the probability that eεEcp is established when a delay at the start vertex u of the edge e is x=d(u) and a delay at the edge e is y=t(e). Therefore, the conditional probability density function φu[eεEcp](x) of x under eεEcp is obtained by integrating φu, t(e)[eεEcp](x, y) over a delay y at an edge ek:
Here, according to Expression 4, the following expression is obtained:
Here, φu, t(e)(x, y), φe(x), and φv(x) can be previously calculated by the technique of Japanese Patent Publication No. 2002-279012, and φe[eεEce](x) can be previously calculated by Expression 19. Therefore, if the conditional probability density function φv[vεVcp](x) of a vertex v under the condition that the vertex v is on a critical path is known, the conditional probability density function φu[eεEcp](x) of a delay at the start vertex u of each edge ek entering the vertex v under the condition that the edge ek is on a critical path can be obtained.
(Calculation of Critical Path Rate for Each Edge)
A vertex vt (=vp0) corresponding to a sink is included in all paths. Therefore, the conditional probability density function φvt[vtεVcp](x) of vt under the condition that the sink vt is on a critical path is equal to the probability density function φvt(x) of vt (Expressions 38 and 39).
P
v
[v
εV
](x)=1 (38)
φv
Therefore, in an acyclic graph G={V, E}, the conditional probability density function φvt[vtεVcp](x) of a delay at any vertex v in the graph under the condition that the vertex v is on a critical path, and the conditional probability density function φu[eεEcp](x) of a delay at the start vertex u of any edge e in the circuit under the condition the edge e is on a critical path, can be calculated by an algorithm 2 described below.
[Algorithm 2]
(1) For all edges e, the conditional probability density function φe[eεEce](x) of the edge e under the condition that the edge e is a critical edge is calculated.
(2) A vertex vt corresponding to a sink is set to an initial value shown by Expression 39.
(3) Edges e are selected in a reverse topological order in the acyclic graph.
(4) The conditional probability density function φu[eεEcp](x) of a delay at the start vertex u of a selected edge e under the condition that the edge e is on a critical path is calculated by Expressions 36 and 37.
(5) When φu[eojεEcp](x) has been calculated for all edges eoj leaving the vertex u, the conditional probability density function φu[uεVcp](x) of a delay at the vertex u under the condition that the vertex u is on a critical path is calculated based on Expression 31.
(6) The processes of (3)-(5) are repeated for all edges and vertices.
When there is a delay constraint D on a circuit to be designed, the probability that a path p is a critical path and the delay value of the path p is D or more may be calculated. Therefore, this probability can be calculated using Expression 40 as an initial value instead of Expression 39.
φv
where u(x) is a step function.
The probability P[eεEcp] that an edge e is on a critical path and the probability P[vεVcp] that a vertex v is on a critical path can be obtained by integrating the conditional probability density function φv[vεVcp](x) of the vertex v under the condition that the vertex v is on a critical path and the conditional probability density function φu[eεEcp](x) of the edge e under the condition that the edge e is on a critical path:
P
[vεV
]=∫−∞∞φv[vεV
P
[eεE
]=∫−∞∞φu[eεE
The complexity of calculation of the probability P[vεVcp] that a vertex is on a critical path for all vertices included in the graph G, and the probability P[eεEcp] that an edge is on a critical path for all edges in the graph G, is O(N) when N>>F, where N is a circuit size and F is the number of partitions in integration calculation. Therefore, it can be said that the calculation process of this method can be completed within a practical period of time.
Determination of Circuit Modification Candidate (ST240)
Next, in a circuit modification candidate determination process ST240, the circuit modification candidate information 500 for improving a delay is output. The circuit modification candidate information 500 may be an edge having a high critical path rate, or the product of a critical path rate and a coefficient indicating a sensitivity, such as a delay improvement rate etc., with respect to cost, such as an increase in area, power consumption, etc. caused by circuit modification. The number of candidates for improvement to be extracted may be predetermined, or only those whose critical path rate exceeds a predetermined probability may be extracted. If the delay constraint D is given, all edges for which the value of Expression 40 is positive may be extracted.
Improvement of Circuit (ST300)
Finally, in the circuit improvement process ST300 of
For example, when the circuit modification candidate information 500 of
When the circuit modification candidate information 500 of
Thus, according to this embodiment, a delay in a circuit to be designed can be reduced by accurately examining a delay distribution and a delay correlation.
There are various variations of the above embodiment. Some variations will be described hereinafter.
The present disclosure is useful for the design of a semiconductor integrated circuit, particularly, the improvement of performance of the circuit which is achieved by simulation of circuit characteristics based on of a process information etc. using a computer.
Number | Date | Country | Kind |
---|---|---|---|
2009-031298 | Feb 2009 | JP | national |
This is a continuation of PCT International Application PCT/JP2010/000877 filed on Feb. 12, 2010, which claims priority to Japanese Patent Application No. 2009-031298 filed on Feb. 13, 2009. The disclosures of these applications including the specifications, the drawings, and the claims are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2010/000877 | Feb 2010 | US |
Child | 13209071 | US |