The curious case of Elmore delays

The curious case of Elmore delays

RC parasitics in wire

This could be the most random blog that I have posted here, but it’s interesting as there is some math involved. So, let’s go! πŸ˜„

I was brushing up some of the fundamentals from the college, and came across the classic Elmore delay. Elmore delays are maybe no longer a thing in modern EDA tools. But it formed the analytical basis of early wire load models used by older tools to approximate interconnect delays. It’s simple and intuitive to use, yet it is a crude approximation of the interconnect as a simple linear RC network.

I read STA for Nanometer Designs very often, and came across the Elmore delay model of a wire and a few interesting formulae surrounding it.

Elmore delay RC interconnect model

Elmore delay model of a wire

This is a distributed RC network of N discrete elements.

If you remember solving the RC circuits back in your good old days,
the delay at each node 1, 2 … can be represented as-

T_{d1} = R_1 C_1
T_{d2} = R_1 C_1 + (R_1 + R_2) C_2
.
.
T_{dN} = \sum_{i=1}^{N} \left( C_i \sum_{j=1}^{i} R_j \right) \text{ - - - (1)}

In the book, the Elmore delay model is applied to a simplified representation of a wire with R_{wire} and C_{wire} as the parasitics, plus a load capacitance C_{load} to model the pin capacitance at the far-end of the
wire. The net delay can be approximated as-

T_{\text{net}} = R_{\text{wire}} \left( \frac{C_{\text{wire}}}{2} + C_{\text{load}} \right) \text{ - - - (2)}

where-
R_{wire} = Total resistance of the wire
C_{wire} = Total capacitance of the wire distributed across it

Well, I was curious how this simple formula was derived. It was mentioned as Pi, T-network model approximation. I am a bit rusty with those models, but was really wondering if we could reach the same formula through the conventional way. Let’s give it a try…

In the original Elmore delay model, a wire is represented as a distributed RC network of Nelements.

Let’s assume the wire is uniform and hence each discrete element is homogeneous, with-

R = R_{wire}/N
C = C_{wire}/N \text{ - - - (3)}

Let’s revisit and simplify the equation we derived in (1), the delay at each node 1, 2.. can be equated as-

T_{d1} = RC
T_{d2} = RC + 2RC
.
.
T_{dN} = RC + 2RC + ... + N.RC

Add the load capacitance C_{load} at the end, and we get the total net delay at the load as-

T_{net} = RC + 2RC + ... + N.RC + N.RC_{load}

\implies T_{net} =\underbrace{RC + 2RC + \cdots + N.RC}_{\text{Sum of N terms}} + N. RC_{load}

Apply the summation formula from school days πŸ€“, S_N = \frac{N}{2}.(\text{First term + Last term})

T_{net} = \frac{N}{2}.(RC+ N.RC) + N.RC_{load}

\implies T_{net} = RC.(\frac{N+N^2}{2}) + N.RC_{load}

Let’s apply (3) in the above equation, to simplify as-

T_{net} = R_{wire}C_{wire}.(\frac{1+N}{2N}) + R_{wire}C_{load}

Let’s convert this lumped, discrete RC model to a continuously distributed RC model by letting N \to \infty. In simple words, we are assuming that the wire is continuous and consists of infinitesimally small segments.

Apply the limits-

\lim_{N \to \infty} T_{net} = R_{wire}C_{wire}. [\lim_{N \to \infty} (\frac{1+N}{2N})] + R_{wire}C_{load}

\implies T_{net} = R_{wire}C_{wire}. [\lim_{N \to \infty} (\frac{1/N+1}{2})] + R_{wire}C_{load}

And hence, the final expression-

T_{net} = \frac{1}{2}.R_{wire}C_{wire} + R_{wire}C_{load}

\boxed {T_{\text{net}} = R_{\text{wire}} \left( \frac{C_{\text{wire}}}{2} + C_{\text{load}} \right)}

So, that explains the formula in (2), eh? πŸ˜‰ … That’s all folks!

Support

Leave a comment or visit support for any queries/feedback regarding the content of this blog.
If you liked Chipmunk , don’t forget to follow!:




Loading

Queries/Feedback?! Leave a comment ...

Chipmunk Logicβ„’ Β© 2025 Contact me