把实际延迟 $d_{abs}$ 除以一个基准时间常数 $\tau$,得到无量纲的归一化延迟 $d$。$d$ 是工艺无关的,因此可以作为比较电路结构优劣的标准。
$$
d=\frac{d_{abs}}{\tau}
$$
$d$ 由两部分组成:
$$
d=f+p
$$
其中 $f$ 是努力延迟(effort delay),取决于门的复杂度与扇出,是门实际在努力为负载电容充放电产生的延迟;$p$ 是寄生延迟(parasitic delay),是门内部的寄生电容充放电产生的延迟。当 $f=0$(无负载电容时),$d$ 函数的截距(interception)即为 $p$。
$$
f=gh
$$
$g$ 是逻辑努力(logical effort),表征门的复杂度。而电气逻辑(electrical effort)则表征门的扇出,其计算方式是负载(输出)电容与门输入电容的比值:
$$
h=\frac{C_{out}}{C_{in}}
$$
逻辑努力
如何表征一个逻辑门的复杂度?选取标准反相器作为归一化的标准。一个逻辑门越复杂,它的输入电容越大。定义逻辑努力 $g$ 为:
显然标准反相器的逻辑努力为 $1$。
计算逻辑努力时,仅需:
- 第一步:将门按照标准反相器的有效电阻(PUN 与 PDN 分别为 $R$)尺寸化(调整各部分晶体管的宽度使其 PUN 与 PDN 分别为 $R$,晶体管宽度与其有效电阻成反比),使其输出电流与标准反相器一致
- 第二步:计算该门输入晶体管的宽度之和,除以 $3$ 得到 $g$(晶体管宽度与其电容成正比,标准反相器的输入晶体管宽度之和为 pMOS $2$ + nMOS $1=3$)

寄生延迟
粗略估计寄生延迟的方法:输出节点 $Y$ 的扩散电容与 $3C$ 的比值(归一化,标准反相器输出节点处的扩散电容为 $3C$),单位为 $\tau$。

这忽略了门内部的扩散电容,比如串联 MOS 中夹着的(共享)扩散电容。因此有时会使用 Elmore 延迟模型来更准确的计算寄生延迟。
最小化路径上的努力延迟
计算多级路径(multistage path)中各级的逻辑努力与电气努力。
关注的路径(path of interest)的逻辑努力:
$$
G=\prod g_i
$$
路径电气努力(在这个定义中就考虑旁支负载 $B$):
$$
H=\prod h_i=\prod \frac{C_{out, i}}{C_{in, i}}
$$
路径努力(path effort):
$$
F=GH
$$
注意只要路径的输入电容与负载电容不变,路径努力 $F$ 就与该路径上电容的尺寸无关。
考虑路径的总延迟 $D$:
$$
\begin{aligned}
D&=\sum d_i=D_F+P \\
D_F&=\sum f_i \\
P&=\sum p_i
\end{aligned}
$$
路径努力 $F=\prod f_i$ 为一定值,为最小化路径努力延迟(path effort delay)$D_F=\sum f_i$,每个 $f_i$ 均应相等。因此路径上每一级的最优努力延迟应为:
$$
\hat{f}=g_ih_i=F^{1/N}
$$
从后往前(路径终点的负载电容不变且已知)逐个计算第 $i$ 级门的最优输入电容:
$$
\hat{f}=g_ih_i=g_i\frac{C_{out, i}}{C_{in, i}} \\
\Longrightarrow C_{in, i}=\frac{g_iC_{out, i}}{\hat{f}}
$$
调整对应逻辑门的尺寸(宽度)以达到最优输入电容。
例题见 Lecture 5 pp. 28-32。
最优级数(一)
考虑一条 64 位的数据通路(datapath),被若干个单位反相器驱动。最优级数是多少?
单位反相器的逻辑努力 $g_i=1$,路径的逻辑努力 $G=\prod g_i=1$
路径的电气努力 $F=64\prod(1/1)=64$
所以有 $D_F=F^{1/N}$
单位反相器的寄生延迟 $p_{inv}(i)\approx 1$,路径的寄生延迟 $P=\sum p_{inv}(i)=N$
所以路径的总延迟可以表示为关于级数 $N$ 的函数 $D=N(64)^{1/N}+N$
最优级数(二)
第二个场景,有一个 $n_1$ 级,路径努力为 $F$ 的逻辑块(logic block),在其末端再加若干个单位反相器,最优总级数 $N$ 是多少?
增加反相器并不会改变路径的逻辑努力 $G$ 与电气努力 $F$,但会增加路径的寄生延迟 $P$。新路径的最佳总延迟为:
$$
D=NF^{1/N}+\sum_{i=1}^{n_1} p_i+(N-n_1)p_{inv}
$$
$D(N)$ 先降后升,令导数 $=0$,求最小化 $D$ 的极值点 $\hat{N}$:
$$
\begin{aligned}
\frac{dD}{dN}=-F^{1/N}\ln F^{1/N}+F^{1/N}+p_{inv}&=0 \\
\Rightarrow p_{inv}+\rho(1-\ln \rho)&=0 \text{ where }\rho=F^{1/\hat{N}}
\end{aligned}
$$
该式无形式解。若忽略反相器的寄生延迟($p_{inv}=0$),有级努力(stage effort)$\rho=e$;通常地,有 $p_{inv}=1$,此时方程的数值解为 $\rho=3.59$。
使得总延迟最小的最佳级数为 $\hat{N}=\log_{\rho} F$。
敏感度分析
敏感度(sensitivity):当采用的级数偏离最佳值时,延迟会对这种偏离有多敏感?

级数在理论最佳级数的 $2/3$ 到 $3/2$ 之间(相应的,级努力在 $2.4\sim 6$ 范围内),延迟都能保持在最小延迟的 $15\%$ 以内。工程上常取级努力 $\rho=4$,便于快速计算合适的级数。这解释了为何 4 扇出反相器是一个代表性的逻辑门延迟单元。