ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

模拟混合信号IC设计全流程:模块电路、工艺移植与后仿真调试

2026/9/23 8:18:50 拓冰建站 浏览量
模拟混合信号IC设计全流程:模块电路、工艺移植与后仿真调试 干了十几年模拟/混合信号AMS电路设计最近正好把手头几个项目的设计笔记重新整理了一遍涉及台积电和中芯国际两种工艺平台下的 Op Amp、BGR、LDO、VCO、PLL、CDR、TX/RX 这些常用模块干脆汇总成一篇能直接当参考手册用的东西。这篇不是教科书式的理论推导而是把每个模块从指标定义、拓扑选型、参数计算到版图落地、后仿真踩坑的关键点全部过一遍适合刚入门模拟IC设计的学生也适合从数字转模拟方向、或者需要跨工艺节点移植模块的工程师。先解释一下标题里的“AMS”在这个语境下指的就是 Analog Mixed-Signal也就是模拟与混合信号电路。前阵子网上总能看到 AMS 和 TwinCAT、Android 扯到一起的热搜那些分别是自动化通信协议和系统服务跟咱们芯片设计里的 AMS 完全是两码事别搞混。同样标题里的“中兴国际”我理解是“中芯国际”的笔误下文统一用中芯国际SMIC来写。另外针对射频收发链路里的 AD9361 初始化时“CP OVRG HIGH”和“RX PLL 未锁定”这类问题我会在后面的调试记录里专门展开。1. 工艺平台选择为什么同一个模块要在台积电和中芯国际各做一遍1.1 工艺库与PDK的差异到底影响什么模拟电路设计和数字逻辑有个本质区别数字设计只要时序收敛、功能正确换工艺后通常只需重新综合但模拟电路的每个管子尺寸、每条走线寄生、每个电容的绝对值都直接依赖工艺参数。同样是 55nm 或 40nm 节点台积电和中芯国际的 PDKProcess Design Kit里管子的阈值电压、迁移率、单位面积电容、电阻方块值、metal stack 层次都不完全相同甚至同一工艺节点下不同 PPET/NFET 的 corner 模型定义也有差异。我在实际项目里的做法是拿到一个新 PDK 后第一件事不是直接画原理图而是把几个关键器件的 DC 仿真跑一遍NMOS/PMOS 的 Vth、Idsat、Ioff 在 tt/ff/ss 三个 corner 下的变化MIM 电容和 MOS 电容的密度poly 电阻和高阻电阻的方块阻值。这些数据决定了我后续选管子尺寸和偏置电流的起点。比如同样是 3.3V 的 I/O 管台积电工艺的 PMOS 阈值通常比 SMIC 略高一些在相同的过驱动电压下需要的宽长比就不一样直接影响输入管的噪声和匹配特性。1.2 跨工艺移植时不能直接“复制粘贴”很多从学校出来或者刚工作的工程师有一个误区上一颗芯片用台积电 55nm 流片成功了下一颗换到中芯国际 55nm以为把网表导过来、重新跑一下 DRC/LVS 就行。真实情况远没有这么简单。不同代工厂的 DRC 规则在最小线宽、最小间距、金属密度、dummy 填充规则上都有差异版图可能需要重新调整而且模型参数不同原先偏置在强反型区的管子可能跑到弱反型区某些自偏置结构的静态工作点会漂移得非常厉害。我踩过最典型的一个坑是 BGR 的启动电路。同一个带隙基准电路台积电工艺下启动没问题换到中芯国际工艺后由于寄生二极管的反向饱和电流和 BJT 的 β 值不同简并点的位置发生了变化上电后电路有一半概率锁在零电流状态。后来排查了很久发现是启动管的尺寸和耦合电容都要跟着重新调而不是原封不动搬过来。所以跨工艺移植的正确流程应该是先做一轮 PVT corner 的重新评估再针对模型差异调整管子尺寸和补偿网络最后才是版图层面的规则适配。2. 核心模拟模块逐一拆解从 Op Amp 到 LDO 的设计细节2.1 Op Amp 设计五管OTA与折叠共源共栅怎么选运算放大器是 AMS 电路里最基础的积木。不同场景下对运放的要求完全不一样我一般按用途把它分成三类第一类是片内低功耗偏置和采样保持用的单级 OTA功耗低、结构简单典型就是五管电流镜负载 OTA第二类是精度要求高的仪表放大器、带隙基准里的误差放大器需要高增益通常会选折叠共源共栅加增益提升第三类是输出摆幅要求高的缓冲器要用到 rail-to-rail 输入输出结构。五管 OTA 的原理图非常经典一个差分对、两个电流镜负载、一个尾电流源。它的优点是极点少主极点在输出端相位裕度好做缺点是增益大概只有 40~60dB输出摆幅受电流镜管子的 Vdsat 限制。设计时最关键的参数是尾电流和输入管的宽长比。尾电流决定了功耗和压摆率输入管的 gm 决定了噪声和失调。我一般先根据压摆率 SR I_tail / C_load 算尾电流再根据噪声指标解输入管的 gm最后通过 gm sqrt(2 * μ * Cox * W/L * I_d) 反推宽长比。要特别注意输入管的过驱动电压不能取得太低否则匹配性变差系统失调会偏大。折叠共源共栅结构则是在五管 OTA 基础上用折叠支路把输入共模范围和输出摆幅解耦。它的优势是增益可以达到 70~90dB而且输入共模范围可以包含地或者电源。设计时要注意共源共栅管的偏置电压选择既要保证所有管子都工作在饱和区又要最大化输出摆幅。对于 1.8V 电源电压我通常会留出 200mV 的余量给每个堆叠管这样输出摆幅大约还有 1.0V 以上。共模反馈电路的设计是折叠共源共栅的另一个难点因为输出端是高阻节点共模电平很容易漂移必须用一个额外的运放环路把它拉回到预设值。2.2 两级运放的频率补偿与 Miller 电容计算当单级运放的增益不够或者需要驱动较大的片外负载时两级运放就是最常用的选择了。经典结构是第一级提供高增益第二级提供大摆幅和驱动能力中间用 Miller 补偿电容做极点分裂。这里有个教科书上讲得不多、但实际设计特别重要的点Miller 电容不仅做极点分裂还会引入一个右半平面零点必须用调零电阻或者源跟随器把它消掉或者移到高频处。补偿电容和调零电阻的取值我一般这样计算先确定单位增益带宽 GBW然后根据第一级的跨导 gm1 和补偿电容 Cc 的关系 GBW gm1 / (2πCc) 来选 Cc。调零电阻 Rz 的经典取值是约等于 1/gm2gm2 是第二级输入管的跨导这样可以把零点推到无穷远。实际仿真中我会扫 Rz 从 0 到 2/gm2 的区间观察相位裕度的变化通常取最大值对应的电阻值再留 20% 的余量因为工艺角变化会改变 gm。相位裕度这个指标不同场景要求不同。普通的 buffer 和偏置电路45 度就够了但如果运放用在 LDO 或者 ADC 的采样保持里我至少做到 60 度以上否则闭环瞬态响应会出现明显的振铃。还有一个容易被忽略的问题是输出端的大电容负载会引入一个低频极点真实应用中驱动 50pF 负载和驱动 2pF 负载时补偿策略完全不同。驱动大电容时可以考虑在输出级加一个串联的零点补偿网络或者用 nested Miller 补偿。2.3 BGR 带隙基准从一阶补偿到曲率补偿带隙基准几乎是所有 AMS 芯片里都跑不掉的标准模块它的核心思想是把 BJT 的 VBE 的负温度系数和 ΔVBE 的正温度系数按比例相加得到一个近似零温漂的输出电压。经典的 1.2V 带隙基准就是取 VBE 17.2 * VT 这样的比例关系。设计 BGR 时我最关心的三个点是温度系数、电源抑制比、以及启动可靠性。一阶补偿的 BGR 温度系数通常在 20~50ppm/℃ 之间对大多数应用够了。但如果你做的是高精度 ADC 的基准源或者车规级芯片要过 -40 到 125 摄氏度那就得考虑二阶曲率补偿。常用的方法有两种一种是用不同电流密度的两个 BJT 产生一个与温度呈非线性关系的电流去补偿 VBE 的高阶项另一种是用工作在亚阈值区的 MOS 管的漏电流温度特性来做补偿。我这里给个大致参考做好的二阶补偿 BGR温度系数能做到 5ppm/℃ 以内。BGR 的启动电路设计是最容易出问题的地方。因为 BGR 有两个简并工作点一个正常点一个零电流点。启动电路的原理就是在电源上电时向核心电路注入一个电流脉冲把电路从零电流点推到正常点然后自己关闭。判断启动电路有没有设计好关键看两点第一在所有 corner、所有温度下上电后都必须能启动第二启动完成后启动电路不能影响基准的稳定性。我常用的方法是用一个长沟道 MOS 管做上电检测等基准输出电压超过某个阈值后把启动管完全关断。2.4 LDO 稳压器稳定性、瞬态响应与功耗的取舍LDO 在 AMS 系统里的角色是把不干净的电源电压转换成内部模块需要的干净电压。设计 LDO 的核心指标包括 Dropout 电压、静态电流、负载调整率、线性调整率和瞬态响应。内部 LDO 和外部 LDO 的设计侧重点完全不同内部 LDO 更看重静态电流和面积外部 LDO 更看重驱动能力和稳定性。LDO 的稳定性是设计里最麻烦的问题因为它天然是一个三极点系统误差放大器的输出是第一个高阻极点功率管的栅极和级间补偿网络之间可能形成第二个极点输出端和负载电容形成第三个极点。很多人第一版 LDO 不稳定都是因为只做了 Miller 补偿而没仔细分析输出极点随负载电流的变化。当负载电流从 1mA 变到 200mA 时功率管的跨导变化很大输出极点位置能移动几百倍频率范围单一补偿网络很难同时保证轻载和重载都稳定。解决手段通常是动态偏置或者零极点跟踪补偿。动态偏置的思路是让误差放大器的尾电流跟随负载电流成比例变化这样功率管跨导变化时补偿网络的零点也在跟着移动。设计时我习惯在输出端加一个 ESR 可调的片外电容同时内部留一个零极点对调谐节点用蒙特卡洛仿真去验证整个负载范围内的相位裕度。LDO 的瞬态响应主要看摆率和环路带宽的折中带宽做宽了对瞬态好但会引入噪声和稳定性风险这个取舍没有标准答案完全取决于后级负载的敏感程度。3. 高频与时钟模块VCO、PLL、CDR 的环路设计与相位噪声3.1 VCO 选型环形振荡器还是 LC 振荡器VCO 是把控制电压转换成频率的模块PLL 和 CDR 里的相位噪声很大一部分就由 VCO 决定。VCO 的选型说白了就是在调谐范围和相位噪声之间做取舍。环形振荡器用反相器链和延迟单元构成面积小、调谐范围宽、易集成但是相位噪声差LC 振荡器用电感电容谐振回路决定频率相位噪声好但占了很大面积而且调谐范围通常只有百分之十几。在 CMOS 工艺里做 LC-VCO需要考虑的关键问题包括电感的 Q 值、变容管的 C-V 曲线线性度、以及尾电流源的噪声贡献。台积电工艺的厚金属电感 Q 值一般比中芯国际工艺高一些因为金属层厚度和电导率不同所以同样的振荡频率相位噪声会有几个 dB 的差距。我做 LC-VCO 的时候会花大量时间在电感版图上用电磁仿真工具提取电感参数而不是只依赖 PDK 里的理想模型。环形 VCO 虽然相位噪声差但在锁相环里的应用并不少特别是高频数字接口的时钟生成。它的优势是天然能产生正交多相时钟而且调谐范围大可以覆盖很宽的频率。设计环形 VCO 时控制电压到频率的增益 Kvco 很关键。Kvco 太大会让 PLL 的环路带宽内噪声变大太小又覆盖不了工艺角偏移。我的经验是 Kvco 留出 30% 的余量把中心频率对准工艺角中间值然后用分段调谐粗调、varactor 细调的结构来兼顾覆盖和噪声。3.2 PLL 环路参数从带宽到相位裕度的完整计算电荷泵锁相环CP-PLL是目前最主流的架构它由鉴频鉴相器PFD、电荷泵CP、环路滤波器LPF、VCO 和分频器组成。PLL 设计里最核心的是环路滤波器参数的确定因为它直接决定了锁定时间、相位噪声和杂散。设计环路参数时我通常按照以下步骤来算。第一步先确定参考频率 fref 和分频比 N这样压控振荡器的频率 fvco N * fref。第二步选定环路带宽 fc工程上一般取参考频率的 1/20 到 1/10这样既能抑制参考杂散又不会因为带宽太窄导致锁定时间过长。第三步根据阻尼因子和相位裕度要求来确定环路滤波器的零点、极点位置。常用的二阶环路滤波器有 R1、C1、C2 三个元件零点 fpz 1/(2πR1C1)极点 fpp 1/(2πR1C1C2/(C1C2))。取相位裕度 60 度时一般让零点在带宽的 1/5 到 1/4 处极点在带宽的 4 到 5 倍处。电荷泵电流和环路滤波器的电容值通过锁定时间要求来反推。一个经验公式是锁定时间约等于 4.6 除以环路的自然角频率对于过阻尼情况。如果客户要求锁定时间小于 100us那么自然角频率就得大于 46kHz再根据这个去选电荷泵电流和电容值。当然这些计算只能作为初值最终还是要靠 Simulink 或者 Verilog-A 模型做整环瞬态仿真来微调。实际流片后 PLL 无法锁定很多时候不是环路子模块本身的问题而是电源噪声耦合到 VCO 的控制线上导致环路振荡这个在后面调试部分会详细说。3.3 CDR 与 PLL 的区别从恢复时钟到数据对齐CDR时钟数据恢复和 PLL 的关系很紧密但设计目标完全不同。PLL 的目标是从一个干净的参考时钟生成另一个频率的时钟CDR 的目标是从带有噪声和抖动的数据流中恢复出时钟信号并用这个时钟对数据进行重新定时。CDR 里也用到 PLL但它的“参考”不是固定的晶振而是数据信号本身。CDR 的实现架构主要有两种基于 PLL 的线性 CDR 和基于相位插值的 CDR。线性 CDR 用鉴相器把数据沿和时钟沿的相位差转换为误差信号直接控制 VCO锁定时时钟的边沿对准数据的中心。相位插值 CDR 则是用一个固定频率的 PLL 产生多个相位的时钟然后通过数据边沿的采样结果动态选择最合适的相位。前者的优点是抖动容忍度好后者的优点是更容易实现多通道集成。设计 CDR 时有一个指标比相位噪声更关键就是抖动容限和抖动传递。对于实际的高速接口比如 PCIe、USB、SATA它们的规范会画出一堆抖动模板你的 CDR 环路带宽要落在规范允许的范围内。环路带宽太窄低频抖动传递不了导致恢复的数据误码率升高带宽太宽又会把高频抖动放大。这里没有万能的参数每个协议都要针对性地做仿真和验证。我在做过一次 SerDes TX/RX 项目后最大的体会是CDR 的验证不能只看功能一定要配合真实的通道模型做统计眼图仿真才能发现潜在的问题。3.4 TX/RX 收发链路从 LNA 到驱动器的设计要点TX/RX 这个范围很大从几十 MHz 的收发机到几十 GHz 的毫米波前端都算。我主要做过 Sub-6GHz 的射频收发机架构上接收机一般是零中频或者低中频发射机一般是直接变频架构。接收链路从天线端开始依次是低噪声放大器LNA、混频器、基带滤波器和可变增益放大器VGA发射链路则是基带信号经过上变频混频器和功率驱动器再送到天线。LNA 的设计指标里噪声系数和增益是第一位的线性度排在第三位。共源共栅 LNA 是经典结构它能同时获得不错的增益和反向隔离。设计 LNA 时输入匹配网络通常用源极电感负反馈来实现这样可以在较宽的频率范围内获得 50Ω 的输入阻抗。有个坑是源极电感值不能太大否则会吃掉太多电压余量导致输出摆幅受限。实际做下来源极电感在 nH 级别版图上走线电感和寄生电容都要一并建模不然仿真结果和实测对不上。发射机的驱动器和功率放大器关注的是输出功率、效率和线性度。对于 CMOS 工艺功率放大器的线性度受限于晶体管的击穿电压和衬底损耗通常很难做到很高的输出功率。因此最近几年很多设计开始用 Doherty 架构或者包络跟踪技术来提升效率但这些都会大幅增加设计复杂度。我的建议是除非你是专攻 PA 方向的团队否则尽量把片外 PA 的指标协议定清楚片内只做驱动级。CMOS 片内做高线性度功率放大器投入产出比往往不高。4. 版图设计与后仿真从截面图理解寄生到反相器验证4.1 看懂 CMOS 截面图对设计到底有什么用很多人在学校里学过 CMOS 截面图但实际画版图时早就忘光了。其实截面图的价值非常大它直接决定了你的版图里哪些地方会产生寄生电容、哪些地方会有闩锁效应风险。以标准的 CMOS 反相器为例从截面图看PMOS 做在 N 阱里NMOS 做在 P 衬底上两者的源漏区和阱之间天然形成 PN 结这些结电容在高速电路里不可忽略。版图设计里最常用的一个技巧就是利用截面图来判断不同层的耦合路径。比如一条高速信号线跨过另一条信号线的上方两条线之间会通过层间介质形成耦合电容频率越高影响越大。又比如 N 阱和衬底之间的大面积结电容会导致电源和地之间的去耦特性变差。我每次拿到一个新工艺的 PDK都会先看一遍它的剖面图文档搞清楚每层金属的厚度、介电常数、以及硅衬底的电阻率。这些数据前期看着枯燥到后面做寄生提取得心应手时你就知道前期理解这些有多重要了。对于模拟电路版图匹配是另一个核心设计原则。差分对管的匹配决定了系统的失调电压电流镜的匹配决定了偏置的精度电阻和电容的匹配决定了滤波器的精度。要提高匹配性常规手段包括共质心布局、增加 dummy 器件、保持环境一致。共质心布局的本质是让工艺梯度对器件的影响在空间上平均化。比如工艺从左到右存在氧化层厚度梯度那么把两个需要匹配的管子交叉摆放每个管子都平均经历了梯度的影响差分匹配就显著改善。4.2 版图寄生提取与后仿真反相器后仿真的完整流程后仿真Post-layout Simulation是模拟设计里最痛苦但也最不能省的一步。前仿真用的是理想连线后仿真则是把你的版图用寄生参数提出来生成一个带 RC 的网络再重新跑仿真。寄生参数分两种R 主要是金属线的电阻C 主要是金属线之间以及线到衬底的电容。在深亚微米工艺里还有 Cc 这种线间耦合电容会对高速信号产生串扰。对称性是版图设计里最值得花时间的地方。差分信号路径的走线要等长等宽并且尽量对称摆放否则会引入额外的相位失配。时钟信号的走线要短而粗减少 RC 延迟和压降。敏感模拟信号要远离开关节点比如 PLL 的 VCO 控制电压必须用 guard ring 围起来并且旁边不能有大摆幅的数字信号跳变否则控制电压会被串扰导致输出频率出现参考杂散。CMOS 反相器的后仿真是一个非常经典的练习。一个简单的反相器前仿真上升沿可能只有 1ns但加上版图的寄生电容后上升沿可能退化到 1.5ns。所以我的习惯是在做任何模块的后仿真之前先把反相器链的后仿真做一遍摸清这个工艺的寄生量级。用同一个反相器驱动不同长度的金属线看看延迟变化了多少这样能很快建立对工艺寄生水平的直觉。等做 PLL 的 VCO 后仿真时就能预估版图寄生会把振荡频率拉低多少从而在原理图阶段就预留调谐余量。4.3 后仿真结果异常时的排查思路后仿真跑出来的结果和前仿真差距太大是每个模拟工程师都遇到过的事。最典型的场景是 VCO 的相位噪声恶化了好几个 dB或者 LDO 的相位裕度从 70 度掉到了 30 度甚至出现 DC 工作点都建立不起来的严重异常。遇到这种情况首先要做的不是盲目改版图而是先把寄生参数按类型拆开逐个分析。我的排查路径是第一步只提取寄生电容不提取电阻看看结果接近前仿真吗第二步只提取金属线电阻不提取结电容再看看第三步把栅电阻和衬底电阻都加上完整跑一遍。通过这种“加减法”可以快速定位到底是什么寄生主导了性能退化。有一次我的 LDO 后仿真相位裕度始终上不去最后定位到是功率管的栅极走线金属电阻太大导致等效的环路相位多了一个极点。解决方式很简单把栅极连线改成两层金属并联金属电阻降了一半相位裕度立刻恢复了 8 度。还有一个常见问题来自版图周围的 dummy 填充金属。现代工艺都有金属密度要求空白区域必须加 dummy但这些 dummy 会和信号线形成耦合电容高速电路里会造成意外的频率偏移。解决办法是让版图在布局阶段就尽量均匀信号线周围留出足够空间并且在做寄生提取时把 dummy 的影响也包含进去。有些工程师偷懒提取时关闭 dummy 选项后仿真结果自然不可信这件事千万别省。5. 常见问题与调试记录从 AD9361 的 PLL 失锁到仿真器报错5.1 AD9361 初始化时 CP OVRG HIGH 与 RX PLL 未锁定最近调试一个射频收发系统时用到了 AD9361 这款集成收发机。初始化的时候状态寄存器上报了一个“CP OVRG HIGH”标志同时 RX PLL 一直锁不上。CP OVRG HIGH 的意思是电荷泵过载也就是 VCO 的调谐电压已经到了下限或者上限电荷泵即使输出最大电流也无法把 VCO 拉回到目标频率。这是一个侧面信号直接说明 VCO 的自由振荡频率和目标频率偏差太大。排查方向其实很明确第一检查参考时钟是否真的正确频率和幅度是否达标用示波器测一下参考时钟的频偏如果偏差超过 100ppmPLL 肯定有麻烦第二检查 VCO 的调谐电压是否已经饱和通过寄存器读回 TPC 状态如果 VCO 电压已经顶到电源或者地板说明粗调频带选择没选对第三检查供电是否正常AD9361 的 PLL 对电源噪声特别敏感VCO 供电上的纹波会直接变成相位噪声。我这次遇到的问题最终定位为参考时钟的驱动能力不足信号幅度不够导致 PFD 无法正常比较相位换成低相噪的差分时钟源之后CP OVRG HIGH 标志清零RX PLL 正常锁定。这类问题在集成收发机里很有代表性想告诉大家一条经验PLL 失锁不要一头扎进寄存器配置里先回到物理层供电和时钟的检查优先级永远最高。5.2 CMOS 反相器后仿真块中遇到“时间步长太小”报错后仿真时最讨厌的报错就是“time step too small”或者“convergence failure”。这种问题通常发生在电路的某些节点存在极端的阻抗比或者模型里包含了一些非常陡峭的边沿导致仿真器在积分时无法收敛。特别是做反相器链后仿真时大电阻串在栅极和小电容耦合在一起会形成很大的时间常数差仿真器被迫把步长缩小到极小结果仿真速度急剧下降甚至直接不收敛。解决办法有几个技巧。第一把仿真的精度从 conservative 改成 moderateEldo 和 Spectre 里都有类似选项可以显著加快瞬态仿真第二检查是否有节点悬空或者浮空的电容如果有给它加一个非常大的电阻到地第三检查模型文件是不是完整某些互连寄生参数的提取文件里如果含有极端值也会导致不收敛。另外建议给仿真器设置一个合理的 timeout 上限别让一个跑一下午的仿真把整个迭代周期拖垮。这类问题没有标准答案全靠经验和耐心一个个排除。5.3 设计数据管理和跨团队协作的建议最后想借这个标题多聊一句AMS 电路设计从来不是单打独斗而是一个系统工程。比如 PLL 模块的锁定时间指标和系统组的开机时序是绑定的TX/RX 的性能指标和天线匹配、封装寄生也是强相关的。我见过太多设计失败不是电路本身不行而是接口定义没对齐。所以做 AMS 项目时我强烈建议在前期花时间把模块规格书Spec写得尽量完整尤其是 signal list、时序要求、IO 电平这些跨模块的信息比电路图本身更能决定项目成败。6. 从项目回归到工具链仿真工具配置和效率技巧6.1 常用 EDA 工具和仿真模型的选择模拟电路设计用的工具链虽然各家 EDA 厂都有完整方案但就我实际接触的团队来看前端原理图和前仿真用 Cadence Virtuoso 还是主流后仿真和版图验证再搭配 Calibre 做 DRC/LVS 和寄生提取。PLL 整环的瞬态仿真如果用晶体管级直接跑动辄就是几十小时实际上前期我会先用 Verilog-A 把 VCO 和分频器建模只有关键子模块用晶体管级这样参数扫描效率能提高一个数量级。等子模块性能都验证通过之后再把整个 PLL 的晶体管级瞬态仿真放到服务器上跑 overnight。6.2 Monte Carlo 仿真的必要性和参数设置模拟设计的 PVT corner 只能告诉你“最好”和“最差”的情况但实际的失配和工艺漂移是随机的所以 Monte Carlo 仿真不可少。做 Monte Carlo 时我习惯同时开 process 和 mismatch 两种变化分别跑至少 200 个点。这里有个经验MC 仿真里出现多少个 fail 点才能接受没有一个固定的数字要看具体应用。消费类电子良率 99% 以上是基本要求但如果只是芯片内部的辅助偏置电路偶尔有几个 fail 点只要保证主功能不受影响可以接受。总之MC 仿真的结果要用统计的眼光去看不要因为一两个坏点就盲目改设计。我在模拟设计里面最常用到的仿真工具组合就是Cadence Spectre 跑前仿Calibre xRC 提取寄生Spectre 再跑后仿。Calibre 的寄生提取模式要选择准确度较高的选项尤其对高频模块需要把 R 和 C 都提取出来。提取之后的 netlist 会变得非常大跑仿真的时候记得给服务器留足内存。某些超大模块如果服务器资源受限可以考虑只对关键路径做寄生提取其余部分用理想连线这种“局部后仿”的策略在工程中很常见可以大大缩短迭代周期。7. 经验之谈关于 AMS 设计流程的几个习惯和避坑建议做 AMS 设计这么多年如果说有什么设计习惯让我受益最多那一定是“先算后仿”。很多刚入行的同事拿到一个模块第一反应是把原理图搭出来然后开始扫参数。我的习惯是先把电源电压、功耗预算、增益、带宽、噪声这些指标写在本子上然后手算一遍大致的器件尺寸和电流再上仿真。仿真器可以帮你验证但不能替你思考。先算后仿还有一个好处就是你对自己设计的每一个管子为什么取这个尺寸都能说出理由这对后期 review 和调试都无比重要。工具链方面多数团队用的是 Cadence Virtuoso 配合 Calibre。Cadence 里的 analogLib 库和 ahdlLib 库里有很多现成的模型比如理想的运放、比较器、VCO做行为级验证特别方便。Calibre 的 DRC/LVS 结果要仔细看尤其是 spacing 和 density 的报错往往是因为版图里某个区域器件摆放太密。我的一个习惯是每个模块独立跑完 DRC/LVS 后在 top level 再跑一次因为模块之间的连接会产生新的密度和层次问题。另外关于电路设计工具现在的开源工具比如 ngspice、Xschem、Magic其实已经能完成很多教学级的验证甚至一些简单工业项目的版图也能画。如果是在校学生或者个人爱好者完全可以用开源工具把 Op Amp 和 PLL 的子模块练一遍积累的感觉到了再上商业工具会顺手很多。做模拟设计平台和工具一定是次要的头脑里的电路直觉和物理直觉才是一辈子的资产。这个内容后续还可以这样扩展我最近正在整理一套关于高速 SerDes 里 TX 均衡器和 RX 连续时间线性均衡器的实测数据等测试台架全部调通了再开一篇专门讲均衡器设计和调试的文章。