Skip to content

SKY130 全差分 OTA 设计记录

文档状态:可复现设计快照。 已记录几何使用随包 BSIM4.5 参数卡和原生 C BSIM 后端;探索新几何若缺少对应参数卡,才需要本地 SKY130/ngspice 显式提取。 本文数字不代表官方 SKY130 sign-off 模型精度。

用本仓库工具链(原生 C BSIM4 + dataset/surrogate/optimize ML 管线)从零走完的 设计案例。测试台:examples/sky130_fd_ota.json(其中 的尺寸即最终优化设计,直接可复现)。

1. 设计需求与测试台选择

需求 实现 结果
差分输入/输出 VINP/VINN → OUTP/OUTN,全差分信号路径
真实源阻抗 Rs = 1 kΩ(每边,传感器/前级驱动量级)
真实负载电容 CL = 0.5 pF(每边,片上下一级 + 布线)
输入 AC 耦合 + 输入 CM 设置 Cc = 5 pF 耦合电容,RB = 1 MΩ 上拉到 VCMI=1.0V(高通角 ~32 kHz)
输出 CMFB 连续时间双差分对 CMFB(见 §2.2)
输出 CM 最优 + 可调 ≥50 mV VCM_REF 轨编程;实测 0.90–1.15 V 全程 1:1 跟踪(斜率 1.03),范围 ≥250 mV
低频增益 > 40 dB 63.0 dB(通带,PVT 全角 >60 dB)
UGBW ≥ 0.1 GHz 102.8 MHz(恒 gm 偏置下 PVT 全角 100.5–102.2 MHz)
功耗 60.5 µW @ 1.8 V(见 §4)

2. 架构综合

2.1 OTA 架构:全差分单级望远镜级联(telescopic cascode)。为什么?

功耗效率是这道题的核心矛盾:UGBW = gm1/(2π·CL) 规定了 gm1 ≥ 2π·10⁸·0.5p ≈ 314 µS, 而 40 dB 增益本身并不难。选型逻辑:

  • 单级:负载电容本身就是补偿电容——没有第二级的静态电流,没有 Miller 补偿电容和 为右半平面零点付出的功耗/面积。全部尾电流都贡献输入 gm。
  • 望远镜级联而非折叠级联:折叠级联要第二条支路(≈2× 电流);望远镜把级联管叠在同一 支路里复用电流,是"每 µA 换 gm"效率最高的 ≥40 dB 拓扑。
  • 代价是摆幅(输出窗约 0.5–1.43 V),本题无大摆幅需求,输出 CM 定在窗口中心 ≈1.0 V (这就是"最优 CM"的依据:所有级联管保持饱和的增益平台中心,实测 0.85–1.15 V 增益平坦)。
  • 弱反型输入对(gm/Id ≈ 23):同样 314 µS 只要 ~13 µA/边。SKY130 实测 gm/Id 上限 ~26,W=58.4/L=0.5 落在效率区且寄生电容不至于压垮 PM(实测 78°)。
  • 增益预算:A0 = gm1·(Rout_n ∥ Rout_p),级联把两侧输出阻抗抬到 ~14 MΩ,手算 74 dB、 实测 63 dB(体效应 + CMFB 负载),对 40 dB 规格有 20+ dB 的 PVT 裕量。

2.2 CMFB 方案:连续时间双差分对 + 电流镜。为什么?

  • 不用电阻平均检测:级联输出阻抗 ~14 MΩ,检测电阻要 >100 MΩ 才不拉垮增益,不现实。 双差分对检测只加电容负载(每输出一个栅)。
  • 不用开关电容 CMFB:本电路无时钟,为 CMFB 引入时钟得不偿失(且带来纹波/馈通)。
  • 工作方式:两个 NMOS 检测对(OUTP vs VCM_REF、OUTN vs VCM_REF),参考侧漏极汇入二极管 接法 PMOS(CTRL 节点),镜像到负载管 M7/M8。CM ↑ → 参考侧电流 ↓ → CTRL ↑ → 负载电流 ↓ → CM ↓(负反馈)。
  • 镜像比必须结构性匹配:W_MD = 2·W_LOAD·W_MT/W_TAIL(平衡时二极管电流 = CMFB 尾电流, 负载电流 = 主尾电流/2)。这不是装饰——见 §4 的教训。
  • 环路动态(50 mV VCM_REF 阶跃瞬态):建立 97 ns(1%),过冲 32%,稳定。
  • CM 精度:−23 mV 系统偏移(CMFB 环增益有限 + 镜像残差),随 VCM_REF 编程 1:1 跟踪, 可调性规格本身就覆盖了这点偏移。

3. 手算 → 目标设计参数(gm/Id 法)

单管特性化(circuitopt.device_model.create_transistor 直接探 BSIM4)先揭穿了两个想当然: SKY130 nfet Vth≈0.75 V、pfet |Vth|≈0.9 V(VGS=0.6 V 全在亚阈),以及弱反型 gm/Id≈26 才是功耗效率的甜点。二分求各角色器件偏置后:

参数 手算 仿真(基线) 仿真(优化后)
每边支路电流 15 µA ~15 µA ~11 µA
gm1 350 µS 368 µS ~330 µS
A0 73.7 dB 63.3 dB 63.0 dB
UGBW 111 MHz 107.4 MHz 102.8 MHz
PM ~90°(单极点) 79° 78°
功耗 81 µW 66.3 µW 60.5 µW

偏置轨:VCMI=1.0(⇒TAIL≈0.27,输入对 VGS≈0.73)、VB_CN=1.204、VB_CP=0.277(VDD 参考)、 VB_N=0.778、VCM_REF=1.0。DC 工作点与手算闭合(TAIL=0.268, X=0.405, P=1.562, CTRL=0.596)。

4. 功耗优化:能压到多低?

流程:teacher dataset(LHS 1200 样本 × 6 设计轴,extract_w 固定参考 W 提卡 → 254 s 生成)→ GBT surrogate(工作区过滤 gain_peak_dB∈[45,80] 后 held-out:gain 0.40%、 bw 3.62%、power 2.82% 中位误差)→ 4 万候选粗筛 → 30 个候选真解校验(直接量单位增益穿越) → 求解器坐标下降打磨 → 逐 W 真卡终检。

两个值得记录的教训(都被 verify 层当场抓住):

  1. 坏 surrogate 会骗过筛选,骗不过校验:第一轮(400 样本、不过滤)bw_Hz 的 R²=−6.3 (级联管出饱和的"悬崖"样本污染回归),筛出的"130 MHz"候选实测全在 30–60 MHz。工作区 过滤 + 加样本后 R²=0.90,16/30 候选一次过。
  2. 没进校验准则的隐藏约束会被优化器钻空子:第一版 58.2 µW 的"最优"设计靠 +71 mV 的 CM 偏移把 CMFB 二极管支路饿扁省电(镜像比 6:1 失配)。把镜像比闭式绑定 (W_MD=2·W_LOAD·W_MT/W_TAIL)+ |CM 偏移|≤25 mV 进准则后,诚实的答案是把 CMFB 尾管 本身缩小(W_MT 3→1.5)。

最终设计(examples JSON 即此):W_IN=58.4, W_NCAS=18.7, W_PCAS=37.3, W_LOAD=95.5, W_TAIL=12.1, W_MT=1.5, W_MS=1.0, W_MD=23.8, VB_N=0.778 → 60.5 µW / A0 63.0 dB / UGBW 102.8 MHz / PM 78° / CM 偏移 −23 mV

功耗地板讨论:UGBW 约束下主体电流下限 = 2×gm1/(gm/Id)max ≈ 2×314µS/26 ≈ 24 µA (43 µW);CMFB + 镜像支路再加 ~9 µA。60.5 µW 距理想地板 ~15%,再压空间在:CL 减半 (规格允许的话直接减半主体电流)、CMFB 进一步缩(以 CM 精度/环路速度换)、或接受 ss 角 UGBW 余量更薄。结论:CL=0.5 pF、全 PVT 达标前提下,~55–60 µW 是这个架构的实际下限。

5. PVT 仿真(P: tt/ss/ff × V: 1.62/1.80/1.98 × T: 30/60/90 °C,27 点)

温度经 BSIM4 温度方程逐器件生效(temperature kwarg,卡按角/温度重提取); PMOS 侧偏置(VB_CP、PMOS 体)VDD 参考,NMOS 侧接地参考——对应真实偏置产生电路。

关键对照——偏置方案决定 PVT 鲁棒性:

方案 A0 范围 UGBW 范围 功耗范围
固定 VB_N(电压偏置) 59.6–63.9 dB 67.1–142.3 MHz ❌ 38.8–98.0 µW
恒 gm 偏置(逐点解 VB_N 使 gm1=350 µS) 60.8–63.0 dB 100.5–102.2 MHz 53.5–80.9 µW
  • 固定电压偏置在 ss 角尾电流塌缩(UGBW 掉到 67 MHz,不达标);ff 角反向浪费 (142 MHz @ 98 µW)。弱反型 gm=I/(nVt):恒流都不够,必须恒 gm 才稳 UGBW—— 片上即经典恒 gm 偏置环(电阻定 gm),本报告用逐点二分 VB_N 仿真其行为(电阻温漂理想化)。
  • 恒 gm 下功耗随温度上升(90 °C 比 30 °C 贵 ~20%:gm∝I/T,保 gm 必须加流)——这是物理, 不是缺陷。
  • 增益全程 >60 dB(20 dB 裕量),PM 72–82°,输出 CM 被 CMFB 钉在 0.962–0.994 V (参考 1.000 V,偏移 <40 mV)全 PVT 稳定。
  • 温度单调性:A0 随 T 轻降(~1 dB/30 °C,ro 降),UGBW 在恒 gm 下几乎不动(±1%)。

复现

# 单点验证(DC/AC/噪声,含通带增益/UGBW/PM/功耗)
python -m circuitopt run examples/sky130_fd_ota.json -a ac,noise
# 数据集 → surrogate → 优化(脚本版流程见本次会话 scratchpad;CLI 等价物):
python -m circuitopt dataset examples/sky130_fd_ota.json -n 1200 --out ota_ds
python -m circuitopt.surrogate train ota_ds.npz --filter gain_peak_dB:45:80 --out ota_gbt.joblib

注意事项(硅 + 多稳态电路): - 这个 14 节点拓扑存在简并 DC 稳态,通用 DC 兜底(source-ramp continuation)可能落错分支; 一切求解都要喂 dc_guesses/x0_guess 种子(dataset 用 seed_fn,和 AC 耦合 AFE testbench 同款模式)。扫 VDD 时种子的 P/CTRL 节点要随 VDD 平移。 - dataset/筛选阶段给扫描器件加 extract_w(免逐候选 ngspice 提卡,400 样本从小时级降到 89 s);终选设计务必逐 W 真卡复核(窄管跨 bin 缩放误差可达 15 mV CM 级)。