Many tools, including Synopsys PrimeTime, model transistors by RC circuits. An RC circuit (or resistor-capacitor circuit) is a model of electric circuits composed of resistors and capacitors. For example, the Figure below is an example of a NOT gate. The actual RC circuit depends on the implementation of the gate, as most gates have multiple ways of being constructed.

The diagram shows the VCC voltage (main power supply) connected to a ground through an NPN transistor which is controlled by an input line . When is high, the transistor closes connecting VCC to ground. At this stage we have the loop VCC → → → ground. Because of the resistor , this loop is dropping almost the entire supply voltage, leaving the OUT line to have nearly zero volts. When is low, the transistor is open, breaking our loop. As a result, little-to-no current flows through , allowing the voltage in the out line to rise.
In an ideal world, a logic gate’s output signal would transition from low to high instantly. However, this is not the case in reality as the voltage takes time to rise. For instance, the figure below is a measure of the voltage of a buffer gate where the green/yellow trace indicates the input signal and the blue trace indicates the output signal. This figure shows that not only is there a propagation delay for the gate to respond to the input signal, but there is rise/fall times for the output signal.

More specifically:
- Propagation delay is the time between the input reaching 50% voltage and the output reaching 50% voltage.
- Rise time and Fall time is the time the output takes to transition between low-high states. Assuming a threshold of 10%, rise time corresponds to the time for the output to go from 10% to 90% voltage.
For simplicity, we assume that at all points in time.
Single Buffer Gate
These timings are due to the gates resistance and capacitance . Consider the current flowing through the buffer gate. We can view the buffer gate as a junction with one in current, , and one out current, . According to Kirchhoff’s current law,
We can model the out current using the current-voltage relationship:
The input current is simpler and can be modeled with Ohms law:
Thus, we get the linear differential equation
which solving gives us that
where is the voltage at time . Applying the initial condition gives us that . Thus,
We get a similar expression for discharge:
Thus, we can find the propagation delay by setting :
where is the RC time constant.
Elmore Delay
Adding more gates into the circuit results in the differential equation becoming quite unwieldy. For that reason, many people choose to crudely approximate the RC time constant with Elmore delay. The idea behind Elmore delay is to compute the average of instead of computing itself. That is, the Elmore delay is given by
This integral can be solved from the circuits topology. At each node in the circuit, the Elmore delay is given by
where the sum is taken across the path from the source node to node . Here is the resistance of the path segment . Solving for where is the final node gives us
where the inner sum is the downstream capacitance.
Deriving Elmore Delay
Our RC circuit is a system that produces an output signal from any input signal , where is the Dirac delta function. If you provide two input signals and , then the output of the system is linear: ; or in simpler terms, doubling the input voltage doubles the output voltage. The system is also time invariant, meaning the output doesn’t change if we apply an input now or 5 seconds from now. This type of system is called a linear time-invariant system.
When the system is provided an impulse signal , it produces a response so that
Consider the impulse signal at time and . At each point in time, our output signal is given by and , respectively. Therefore, our response over this time frame is given by
Applying the fundamental theorem of calculus and letting gives us that .
Instead of working in the domain of time, we want to work in the frequency domain. Define our input signal , where is the complex-valued frequency. Then it follows that
i.e.,
where is the transfer function of our system. If we replace with a series, then becomes
Thus, taking the first two terms gives us
Notice that our approximation for is our input frequency delayed by , i.e.,
Therefore, a first-order approximation for the delay is .
Computing Elmore Delay
Returning back to our single gate model, we found that
According to the differentiation property of the Laplace transform, . Thus, if we take the Laplacian of our differential equation we get that
Thus, it follows that
This forms a power series, so
Taking the first-order approximation gives . However, we originally found that . Therefore, it follows that .
Extending beyond a single gate requires setting up a system of linear differential equations. For instance, if we have a chain of buffer gates in serial then we need to solve the following system:
Taking the Laplace transform of each equation gives us:
Chaining them all together gives:
Thus, the final delay is given by
If we assume all buffer gates have the exact same resistance and capacitance, then the actual solution to our system (according to Claude) is
Using a fixed , I numerically approximated the delay given and the Elmore delay model for . Surprisingly, the Elmore delay performs quite well as the number of gates increase.
