
模拟ASIC这个系列写到第三篇其实已经过滤掉不少只看热闹的人了。前两部分我们聊了“模拟ASIC到底是什么”和“怎么从零做一个简单的芯片”这篇我想换个角度从实战出发聊一聊我在帮客户做模拟ASIC定制时真正要反复权衡的那些事情。不是教科书里的推导而是你在项目例会上、在与版图工程师的沟通里、在流片回来测试的老旧实验室里真正会碰到的那些决策和坑。如果你正在纠结“要不要把我的模拟前端做成ASIC”或者手上已经有一个模拟信号链的定制项目却感觉指标和工艺之间有些东西没想透那这篇文章值得你花二十分钟慢慢看。1. 为什么做到第三步模拟ASIC不是标准产品的备胎模拟ASIC经常被误解成“买不到合适芯片时的无奈选择”这个认知从一开始就错了。我在评估一个项目要不要做模拟ASIC时首先问客户的问题从来不是“你买不到什么”而是“你为这个产品规划了多少出货量、性能和成本是按什么年限来定义的”。1.1 判断要不要做ASIC的三个硬指标我自己判断一个模拟信号链有没有必要定制成ASIC通常就看三件事批量、功耗与面积、以及供应链的自主性。批量是最直观的。如果不算工程费模拟ASIC的单颗成本在到达一定量级之后会明显低于同性能的分立方案或者标准模拟芯片但这个“量级”在不同工艺下差异很大。一般来说成熟节点的模拟ASIC年出货量在几十万颗以上摊薄后的成本优势才开始显现。如果你的量只有一年几万颗那大概率还是用现成器件更划算。功耗与面积是另一个判断维度。消费类传感器、医疗器械、工业变送器里常见的痛点是电池仓尺寸被结构工程师压得很小板级方案塞不下或功耗超标。这时候把整个模拟前端整合进单芯片节省的不只是PCB面积还有封装和整体物料成本。我接过一个工业压力变送器的项目原方案是两颗仪表放大器加一颗基准源加一颗ADC整个信号链占板面积将近100平方毫米功耗约6mA。合并成一颗模拟ASIC之后面积降到不到20平方毫米功耗降到2mA不到BOM还少了一大半。最后一个指标是供应链。对于一个生命周期超过十年的工业产品如果核心模拟器件来自单一供应商停产风险随时可能爆发。定制ASIC的流片和封装在你自己的掌控范围内晶圆片可以在代工厂锁定产能芯片的所有权和版图也在你手里这是一种长期主义的选择。1.2 模拟ASIC和标准件、模拟FPGA方案怎么选这里经常有人混淆。模拟ASIC不等于“把电路板上所有元件都集成进去”它更适合做信号链的主干部分比如放大器、基准、比较器、振荡器、LDO这些功能模块。而被动元件、功率管、隔离器件这些很多时候依然需要外置。市面上还有一种叫模拟FPGA或在系统可编程模拟器件的东西能在现场改配置。它的灵活性确实高但代价是单位性能较低、噪声和功耗都偏大。我的经验是如果你的参数在项目过程中可能大幅调整比如传感器量程范围还没定死可以先拿可编程模拟器件做原型验证。一旦指标冻结准备走量再把它替换成真正定制的模拟ASIC这一步做完性能和成本瞬间拉开差距。所以你在项目里看到真正的模拟ASIC往往不是突然冒出来的而是经过原型验证、方案对比之后的一个收敛产物。它是在告诉你这个信号链已经定型了接下来要优化每微安的电流和每平方毫米的面积。2. 从系统指标到电路架构先算清账再动手画图做模拟ASIC和做数字ASIC的最大区别是数字设计侧重逻辑综合而模拟设计一开始就是数学。你得把产品需求一层层翻译成电参数再来选择电路架构。跳过这一步直接画原理图后面八成要返工。2.1 把需求翻译成电参数一个传感器信号链的实例拿我之前做过的一个光电检测前端来举例。客户的需求很简洁检测范围从100nA到1mA的光电流输出0~3.3V的电压线性误差小于0.1%带宽10kHz功耗小于1mA工作温度-40到85摄氏度。拿到这个需求我不会马上开始选运算放大器而是先做信号链预算。从100nA到1mA这是80dB的动态范围。单做一个跨阻放大器直接采输出噪声和失调在低端就会吃掉精度。所以架构上必须先分档或做对数压缩。对线性度有0.1%的要求对数放大器的匹配就比较难保证于是我们选择了两个方案对比一个是两档跨阻放大加自动增益切换一个是两个并联跨导放大器再做对数映射。最后从温漂和噪声两个角度选了前者。这样的计算需要在项目开始时拉一个Excel表把每个模块的增益、噪声、失调、带宽、功耗逐项列清楚然后用蒙特卡洛仿真的方式验证最坏组合。大部分团队在画原理图之前已经在做这件事了但做到多细直接决定了后面要烧多少仿真时间。2.2 架构选择单级还是多级要不要片上电源管理信号链架构定了之后具体到每个模块又面临选择。比如放大器单级结构噪声低、功耗小、稳定性好设计但增益上不去多级结构能拉高增益却需要做频率补偿补偿电容还会吃掉一部分带宽和压摆率。在我做的大多数模拟ASIC里真正需要的增益并不离谱60到80dB完全够用。所以能用单级折叠共源共栅解决的问题我不会为了“看起来更先进”而上多级。记住每多一级就多一份稳定性风险。另一个常见问题是要不要把电源管理也做进芯片里。如果系统里只有一路3.3V供电而模拟部分需要1.8V的干净电源轨那在片上做一个低噪声LDO是很自然的选择。这样能省掉外部LDO和滤波电容改善电路的电源抑制比。但这也有代价LDO本身消耗静态电流如果整体功耗指标特别紧就需要仔细权衡。我见过不少项目习惯性在ASIC里加一堆模块结果功耗超了测试时又不得不裁掉功能重新流片。架构阶段一定要对芯片的“功能边界”有清晰的界定不要什么东西都往里塞。2.3 工艺选型BCD、高压、RF-SOI怎么选工艺选择是模拟ASIC设计里最牵一发动全身的决策。标准CMOS工艺便宜、模型成熟、密度高适合低压模拟和数字逻辑混合的芯片。但如果你要驱动外部功率器件、处理高压信号或者做高精度模拟就需要考虑专门的工艺选项。BCD工艺是我个人最常用的选择。它把双极型晶体管、CMOS和DMOS功率管集成在同一颗芯片上既能做精密模拟又能做中等功率输出和高压接口。典型应用比如电机驱动里的电流采样和门驱动或者汽车传感器的电源和信号接口一颗BCD芯片基本都能扛下来。如果设计里需要极低噪声的匹配精度或者必须处理射频信号那可能得看到RF-SOI或者特殊选项的双极工艺。不过这些工艺的晶圆成本、设计规则复杂度都会上一个台阶。我的建议是能用普通BCD解决就绝不上特殊工艺除非产品性能和可靠性要求逼得你不得不选。选完工艺还有一个很容易被忽略的步骤就是和代工厂的PDK版本确认。模拟设计对PDK的依赖性比数字设计大得多不同版本的模型参数可能有差异尤其是失配参数这直接影响你蒙特卡洛仿真对良率的预估。3. 核心模块设计参数计算与实现聊完架构落到具体电路。这一部分我们挑几个模拟ASIC里出现频率最高的模块讲讲我怎么定参数、怎么做取舍。这里没有玄学每一步都是算出来的。3.1 带隙基准怎么设输出电压、温度系数、静态电流几乎每个模拟ASIC里都有一个带隙基准。它的作用是提供一颗芯片内部的参考电压所有ADC、比较器、LDO的精度都依赖它。传统带隙基准的核心思想是把一个具有正温度系数的电压通常来自两个PN结的差值也就是PTAT电压和一个具有负温度系数的电压也就是PN结本身的Vbe按照特定权重相加得到近似零温度系数的输出。典型输出电压在1.2V左右因为硅的带隙能量大约是1.12eV加上校正项工程上常做到1.2V附近。在设计时我会首先明确目标的温度系数。工业级产品一般要求整颗芯片在-40到85摄氏度范围内基准温度系数不超过50ppm/摄氏度。手册上经常写作50ppm/°C意思是温度每变化1摄氏度电压相对变化百万分之五十。如果按1.2V算换算下来一整段温度范围的变化大约是1.2V乘以50ppm再乘以125度等于7.5mV的漂移。这个量对12位精度的ADC来说会影响约两个最低有效位所以不能忽略。静态电流也是一个核心指标。低功耗应用里带隙基准的电流一般控制在5到20微安。这个值与电阻的绝对值、运放的偏置电流直接相关。你需要做的是在功耗和噪声之间找平衡。基准噪声大了后面所有模块的精度都会受牵连。3.2 运算放大器增益、带宽、噪声怎么定运算放大器是模拟信号链的核心。我在做运放设计时输入噪声密度、直流增益、单位增益带宽这三个参数是捆绑在一起确定的。先看噪声比如一个用于传感器放大的运放输入等效噪声密度如果做到10nV/√Hz在10kHz带宽下等效输入噪声大约是10nV乘以根号10000也就是10nV乘以100得到1微伏。如果传感器的满量程输出是10mV信噪比还能维持得不错。但如果传感器输出只有1mV这个噪声就太高了。再看带宽带宽和功耗成正比。运放的单位增益带宽大致等于跨导除以补偿电容而跨导本身又受尾电流的控制。想省电带宽就会降下来。这需要根据信号的实际频率成分来确定不要为了带宽而带宽。直流增益方面如果你做的是12位精度的系统信号链里每个放大环节的直流增益至少要达到80dB以上否则增益误差就会影响系统精度。这里有一个简单的换算关系如果运放的开环增益是60dB闭环增益为10倍那么实际的闭环增益相对理想值的误差大约是1/(1开环增益/闭环增益)也就是约0.1%。对12位系统来说这个误差已经接近一个LSB了。稳定性方面我习惯在原理图阶段就给每个运放加上米勒补偿并且把相位裕度仿真做到至少60度。不要等流片回来发现振荡了再想办法那叫救火不叫设计。3.3 比较器和振荡器门限计算、迟滞、频率稳定比较器这个模块看起来简单实际最容易翻车的地方是回差迟滞。如果不加迟滞任何输入噪声都可能让输出在门限附近来回翻转连带着后端数字逻辑产生一连串错误的触发。设计比较器时我会根据应用场景主动设置3到20毫伏的回差。比如一个电池电压监测电路门限设在3.0V那么回差可以设在10mV这样电池电压在门限附近缓慢波动时不会导致系统频繁地开机、关机。振荡器也值得一提。模拟ASIC里如果需要产生时钟通常会用环形振荡器或者弛豫振荡器。环形振荡器结构简单、面积小但频率受工艺和温度影响较大。弛豫振荡器用电流对电容充放电来产生频率精度稍高一些。对于精度要求较高的应用可以从外部输入晶振时钟但在芯片内部做时钟整形和工作模式切换。如果你是第一次设计振荡器还要注意一个细节电源电压变化会直接影响比较器门限和充放电电流导致频率随电源变化。这时候可以在内部加入一个简易的稳压器或者用带隙基准做电流偏置把频率稳定住。4. 版图、封装与测试设计只占一半工作很多工程师以为画完原理图、仿真通过项目就完成了。真正做过模拟ASIC的人都知道版图、封装和测试才是一半以上的工作量。前面电路设计犯的错误在这里会成千上万倍地放大。4.1 版图匹配公共质心、dummy 电阻、guard ring模拟版图最重要的关键词就是匹配。电流镜的失配直接决定基准和偏置的精度差分输入对的失配直接决定运放的失调电压。我的经验是几乎所有高精度模拟设计都要在版图上认真做匹配。差分对管我会尽量采用公共质心布局让两个管子按照交叉对称的方式摆放。这样做的好处是芯片上的工艺梯度引起的参数偏差能互相抵消。举个例子晶圆表面的掺杂浓度从一边到另一边有缓慢梯度如果两个管子左右分开摆一个在高浓度区、一个在低浓度区参数就会明显失配。交叉摆放之后每个管子的有效位置都在整个配对区域的几何中心梯度的影响被平均掉。电阻的匹配也同样重要。在做比例电流或者基准电压的电阻分压时我会用同样的电阻单元串联或并联并且在电阻阵列两端加上dummy电阻。dummy电阻的作用是让边缘效应一致避免光刻和刻蚀时边缘误差导致不同位置的电阻阻值出现系统性偏差。还有一点敏感模拟电路周围要加guard ring保护环把衬底噪声和闩锁风险挡在外面。特别是芯片里同时存在数字逻辑和模拟电路时没有guard ring的话数字翻转时产生的衬底电流会直接干扰模拟部分的电压参考。这个坑我踩过后面再具体说。4.2 封装选型与引脚布局散热、引脚间电容、开尔文连接封装这件事常常在芯片设计接近尾声时才被想起来然后引发一堆麻烦。封装选型我建议在设计一开始就确定一个大致方向至少要明确芯片的功耗和引脚数量。常见的封装类型有QFN、SOP、TSSOP、BGA等对于模拟芯片QFN是性价比和散热都比较均衡的选择。模拟ASIC对封装更敏感的是引脚间的寄生电容和串扰。引脚之间的电容虽然只有零点几皮法但在高速开关或者高阻抗节点上会造成信号耦合。尤其是传感器输入引脚本身是高阻抗节点最容易受到相邻引脚数字信号的干扰。所以在定义封装图纸时我会把模拟敏感引脚和数字引脚尽量分开必要时在敏感引脚中间插入电源或地引脚作为隔离。如果被测信号不需要走很远的路径又对精度要求极高我还会在封装上考虑开尔文连接。也就是把电流通路和电压检测通路分开走避免导线电阻和引脚电阻上的压降进入测量回路。这是四线制测量的经典做法对微小电阻和精确电流检测尤其重要。4.3 生产测试 vs 实验室测试测试向量、SPEC边界、良率芯片流片回来实验室测了样品性能很好不代表就能量产。真正的考验在生产测试上。生产测试必须在几秒钟内完成用自动测试设备ATE测完所有参数然后判定芯片是pass还是fail。这里的设计思路和实验室测试完全不同。在生产测试里你要给ATE定义每一个参数的测试条件和边界。比如输出电压范围在实验室里可能会扫温度、扫电压但在生产测试中通常只测常温下两端电压下的值。边界怎么定直接关系到良率和客户使用中的可靠性。边界放得太宽坏芯片流出去了边界放得太窄良率太低成本飙升。我的做法是先做一批实验室充分表征的数据看每个参数的分布再结合电路仿真结果计算测试边界。这里有一个统计学的概念叫Cpk简单说就是测试边界和参数分布之间的关系。Cpk越高说明参数相对边界越安全。一般量产测试要求Cpk大于1.33也就是参数离边界至少有大约四个标准差的余量。达不到Cpk要求的参数要么放宽规格要么修改设计。生产测试还涉及到测试时间。每个参数都是成本因为ATE机时很贵。能合并的测试就合并能减少的测试步骤就减少。我见过一些项目测试项列了50多条几乎把实验室表征项目全搬上去结果单颗芯片测试成本比芯片本身还贵。测试工程师的作用在这时候就体现出来了他们知道哪些参数是真正需要全测的哪些参数可以通过抽测或关联替换来覆盖。5. 常见问题与调试技巧实录最后这一部分我把自己和同行在实际项目中遇到过的问题汇总一下。这些问题在教科书里都有答案但只有当你在示波器面前真真切切地看到它们出现时才明白那些理论和实践之间的鸿沟。5.1 LDO输出振荡怎么一步步定位有一次我们给一颗传感器ASIC设计了内部LDO仿真时相位裕度在65度看起来非常稳妥。结果流片回来在低温测试时LDO输出出现明显振荡波形频率大约几百千赫兹。我先做的不是改电路而是确认振荡的条件。示波器接上之后发现当负载电流从0跳到10mA时输出电压先掉下去再爬回来中间带着振铃。这是典型的负载阶跃响应引起的LDO不稳定。为什么仿真里没问题呢后来仔细查发现我们在仿真时用的输出电容模型是理想电容没有包含等效串联电阻ESR。实际PCB上的电容ESR比较大这个电阻和LDO的输出阻抗共同作用形成了额外的零点改变了环路相位。找到原因后我们把LDO的补偿网络参数调整让它在更大的ESR范围内保持稳定。这颗芯片最终改版后问题彻底消失。这个案例说明一个很朴素的道理仿真模型永远不可能完全覆盖真实世界关键参数一定要留足够的裕量尤其是那些来自外部元件的参数。5.2 信号链的噪声门道斩波、锁相检波低噪声一直是模拟ASIC的头号挑战。我做过一个微弱电流检测项目检测下限是pA级别这个量级下任何常规运放的偏置电流和1/f噪声都会把信号淹没。解决这个问题我们用了两个手段。一是斩波稳定技术它把信号调制到较高频率避开1/f噪声集中的低频段再在信号通路里解调回来。斩波技术的代价是会在输出端引入斩波纹波所以后续需要加滤波器。第二个手段是锁相检波也就是锁定放大器原理。我们把输入信号用一个已知频率的方波或正弦波去调制再在输出端用同一个参考频率进行同步解调。这样只有和参考频率严格同步的信号才能被检出来其他频率的噪声都被滤除掉。这种方法在微弱信号检测中非常强大但前提是你要有一个足够干净的参考时钟源。在低噪声设计里还有一个小技巧电源去耦电容一定要贴近芯片引脚摆放而且模拟电源和数字电源的走线一定要分开哪怕是同一个电压域也要用磁珠或者星星拓扑连接避免数字噪声通过电源路径串进模拟电路。5.3 ESD和闩锁的教训ESD静电放电是每个做模拟芯片的人都绕不开的话题。芯片在封装、运输、贴片过程中都会遇到静电如果没有良好的ESD保护结构芯片在客户端使用前就可能已经失效了。我在一个早期项目上吃过一次亏。那颗芯片的ESD结构按常规设计过了人体模型2kV的测试但在客户产线上用带电机台的自动化设备贴片时失效比例偏高。后来分析发现问题出在快速放电模型CDM上面。自动化设备里芯片积累的电荷通过引脚瞬间泄放电流峰值很高普通ESD保护管反应不够快导致内部电路损坏。从那次以后我在做ESD设计时会同时考虑人体模型HBM、机器模型MM和充电器件模型CDM并且要求代工厂提供这三类模型的仿真验证。版图上所有外部引脚都要加二级保护结构第一级是主泄放路径第二级是限流电阻加次级钳位确保核心电路不被击穿。闩锁latch-up则是另一个隐蔽的坑。CMOS工艺里天然存在寄生晶闸管结构在电源上电顺序异常或者输入电压高于电源电压时可能触发闩锁表现为芯片电流突然增大如果不及时断电芯片就会烧毁。预防闩锁的方法一是严格按照版图设计规则放置guard ring二是芯片外围加足够的隔离环三是明确输入引脚允许的电压范围必要时在引脚上加保护二极管。你在产品定义阶段一定要和系统工程师明确所有引脚的极限电压条件。我之前遇到一个客户把传感器引脚的电压接到了12V而芯片电源只有3.3V结果就是闩锁烧芯片。这种事不是芯片设计错误而是系统设计没有考虑周全。模拟ASIC要成功不光是芯片设计师自己的事更需要和系统端沟通到位把所有边界条件写清楚。写在后面的一点经验做模拟ASIC这些年我最深的感受是这行没有捷径每一个参数、每一次仿真、每一个版图细节都是在为最终的可靠性积累。你可以靠经验快速做出判断但你永远不能用经验替代验证。如果是准备入门的人我建议不要一上来就想着做多高深的结构。先从一个简单的带隙基准、一个单级运放开始完整地走一遍从指标到仿真到版图到测试的流程。走完一遍之后你对“模拟ASIC”这个词的理解会比看十篇文档都深刻。如果你已经在做一个具体的模拟ASIC项目碰到指标反复、工艺不熟、测试不过这些问题完全不丢人。把这些挑战一个个解决掉你手里的每一颗芯片都是你在模拟设计这条路上走出来的印记。