1. 为什么要做这份AMS模块清单:跨代工厂项目的真实痛点
先讲个背景。我在做一颗数模混合SoC的时候,同时面对台积电和国内代工厂两套PDK,电压域、时钟域、模拟前端混在一起,最头疼的不是某个模块设计不出来,而是等到系统联仿阶段才发现,某个IP在SMIC的工艺角下跑到85℃时已经不满足规格,而同一份原理图拿到台积电的工艺文件下又能跑通。类似的事情反复出现之后,我意识到一个问题:AMS设计真正的成本不在“设计”,而在“跨工艺复用”时的验证和收敛。
这份汇总不是要把所有模块的完整电路贴出来——那样既不现实也没什么实用价值。它的定位是一张“AMS设计决策图”:告诉你运放、带隙基准、LDO、VCO、PLL、CDR、TX/RX这些常见模块,在台积电和中芯国际两类工艺环境下应该关注什么指标、怎么选拓扑、哪些参数会被工艺差异放大、哪些坑是两套PDK之间最常见的问题。对于一个在数字为主、模拟为辅的SoC团队来说,这份清单可以帮你把时间花在真正会出问题的地方。
适合读者有三类:一是刚入门AMS方向的研究生,需要一条从模块规格到工艺实现的完整思路;二是做数字SoC但偶尔要看模拟模块的架构师,需要快速抓住每个IP的核心矛盾;三是从单一代工厂转向多代工厂设计的工程师,本文后半部分会重点讲移植过程中容易被忽视的细节。无论是哪类读者,我建议你把这篇文章当成一份“设计前检查表”来用,而不是标准答案。
1.1 为什么要把这些模块放在一起整理
很多人习惯把一个项目按模块拆开,各自为战。运放归运放组设计,PLL归时钟组设计,LDO归电源组设计,等到了顶层集成的时候,发现彼此之间的接口定义是冲突的。比如LDO的PSR指标不够,导致VCO的电源噪声耦合进相位噪声;再比如CDR需要的高频时钟和PLL输出时钟之间出现了相位偏移,最后只能反过来改环路带宽去妥协。
把这些模块放在一起看,最大的价值是能看清楚“一个模块的指标如何变成另一个模块的指标”。运放的噪声和失调决定了LDO的精度,LDO的输出噪声和PSR决定了VCO的相位噪声上界,VCO的KVCO和调谐范围决定了PLL的环路参数选择,PLL的抖动又直接决定了CDR的眼图余量,而TX/RX的均衡能力决定了整个链路能不能留下足够的SI余量。这是一条完整的“指标传递链”,任何一个环节断掉,系统层面都会出问题。
1.2 这套汇总不是网盘资料,而是一张设计决策图
我见过不少团队做IP选型时,习惯去网上找别人共享的资料包,里面充满了没有上下文信息的Demo电路。下载下来能跑通仿真,但不知道它在什么spec下设计的,也不知道为什么选这个拓扑,更不清楚跨工艺移植时要改什么。
真正能复用的是“决策逻辑”:面对一个设计需求,我是怎么判断选折叠共源共栅还是两级Miller运放,为什么PLL环路带宽取参考频率的1/20而不是1/10,为什么LDO在这种负载条件下宁可用内部补偿而不是外部ESR补偿。这些判断标准才是可以跨项目沉淀的资产。本文的每一节,我都会尽量把“为什么”讲透,而不只是列步骤。
2. 台积电与中芯国际的PDK差异:决定模块复用方式的底层约束
在没有真实跑过两套PDK之前,很多人误以为“代工厂之间的区别就是线宽和频率”,实际上是PDK里一套复杂的模型差异——这些差异决定了同一个电路拓扑换一个工艺后,性能和良率会发生什么变化。这里我从AMS设计的角度,把最关键的差异归纳成四类。
2.1 器件模型与工艺角的差异
先看晶体管本身。同样是0.18微米工艺,台积电和中芯国际的BSIM3/BSIM4模型参数并不相同,最直接的影响是阈值电压Vth和跨导gm。同一个电流镜像结构,在两边的实际偏置点可能有明显偏移,导致运放的增益、带宽、相位裕度跟着变化。
更深一层的差异在失配模型。AMS设计最依赖的Monte Carlo仿真结果,完全建立在PDK提供的失配参数上。台积电的失配参数一般按Pelgrom模型给得比较完善,包含面积项和距离项;有的国内工艺PDK在早期版本中失配模型覆盖不全,或者只给了典型值,没有给出corner下的失配变化范围。这种情况下,如果你完全依赖Monte Carlo结果去定版图尺寸,实际流片后的良率风险会很高。
我的处理习惯是:从固定增益级和Bandgap这类对失配极度敏感的模块入手,先做一次小规模试流片,用实测数据反向校准PDK失配模型的偏差,再决定后续批量设计时要不要对器件面积做额外的冗余放大。
2.2 无源器件与金属层次差异
AMS设计离不开发热电阻、MIM电容、MOM电容和电感这些无源器件,而这两家在无源器件上的差异往往比晶体管更大。
台积电的MIM电容精度高、单位电容值调节粒度小,但顶层金属密度和版图间距限制比较严格;中芯国际很多工艺节点的MIM电容密度略低,但MOM电容(金属叉指电容)的选择较丰富。对PLL环路滤波器这种需要精确电容比的场景,MIM和MOM的匹配特性差异会直接影响环路带宽精度。
电感的差异对VCO的影响尤其大。RF工艺的厚金属层决定电感Q值,台积电射频工艺的顶层厚金属让电感Q值能做到15-20,而中芯国际模拟工艺的顶层金属较薄,同样尺寸的电感Q值可能只有10左右。Q值下降会让VCO的相位噪声变差好几个dB,这不是通过电路拓扑能完全弥补的。所以在做VCO选型时,必须先确认所选的工艺节点是否有足够厚的顶层金属,而不是默认“VCO都一样”。
2.3 工艺节点选择的基本判断
标题里列了从Op Amp到TX/RX这么多种模块,现实中不可能每一类都用同一个工艺节点做。哪怕在台积电的先进节点,也没有人会拿5nm去做LDO,因为高压器件和低漏电器件在先进节点上并不占优势。我的基本判断是:
- 纯模拟精度模块(LDO、BGR、Op Amp)适合成熟节点,比如0.18微米和0.13微米。这类节点器件耐压高,模型成熟,匹配性经过大量流片验证。
- 中等复杂度模块(PLL、VCO、CDR)可以用65nm/40nm,这些节点在晶体管速度和无源器件性能之间取得平衡,适合做GHz级别的时钟。
- 高速SerDes TX/RX需要兼顾数字逻辑密度和模拟前端性能,一般选28nm及以下节点,但要注意在先进节点里模拟模块的电压裕量变差,ESD和闩锁效应处理也更麻烦。
一个反面教训:我做过一个项目,为了和数字逻辑共用工艺,强行把BGR和LDO放到了28nm节点。结果低电压下Bandgap的启动电路工作范围受限,LDO的pass transistor在低Vgs下导通电阻飙升,最后不得不外部加了一颗LDO才解决。成熟工艺做模拟模块,先进工艺做高速数字,这个“分工”是有道理的。
3. 运算放大器/带隙基准/低压差稳压器:基础模拟IP的三个关键取舍
这三个模块在AMS系统里是偏置和供电的地基。地基不稳,上面所有的时钟和高速模块都白搭。这一节我把它们放在一起,不是因为它们简单,而是因为它们的设计方法论高度相似:都要权衡精度、功耗、面积和稳定性。
3.1 运放:增益/带宽/功耗的平衡杠杆
运放设计的第一件事不是画管子,而是明确负载和闭环条件。同一个运放在不同闭环增益下有完全不同的稳定性表现。比如一个GBW为100MHz的运放,接成10倍闭环放大,理论带宽只有10MHz,此时如果相位裕度只有45度,实际闭环响应会有明显的峰值,容易造成过冲。
选拓扑时,我的基本逻辑是:
- 需求增益超过60dB且需要驱动较大负载电容时,优先考虑两级Miller补偿结构。第一级提供高增益,第二级提供输出摆幅,Miller电容同时完成频率补偿。
- 需求带宽很高且负载很轻时,折叠共源共栅结构更合适,单级就能做到高带宽,不存在Miller电容的前馈零点问题。
- 需要极低功耗时,可以考虑电流复用结构和反转放大器,但代价是噪声和失配会变差。
跨工艺移植时,最容易出问题的是补偿电容的取值。在台积电PDK里,你习惯用2pF的MIM电容做Miller补偿,换到中芯国际后,如果该工艺的MIM电容单位密度不同,同样的版图实际电容值可能偏差10%到15%,这会直接改变运放的GBW和相位裕度。经验是,移植后一定要重新仿真交流特性,绝对不能因为“电路一样”就跳过AC仿真。
3.2 带隙基准:曲率补偿与失配校准
带隙基准的核心是产生一个与温度基本无关的参考电压。基本原理大家都很熟:VBE具有负温度系数,ΔVBE(两个不同电流密度下的VBE之差)具有正温度系数,二者按比例相加得到约1.2V的基准电压。真正决定性能差距的是二阶效应:曲率、工艺漂移和失调。
常规一阶补偿的带隙基准,在-40℃到125℃的范围内温漂一般能做到20ppm/℃左右。如果你需要更高精度,就要做曲率补偿。常见做法是分段补偿或使用带有非线性项的电流源来抵消VBE的高阶温度项。在工程上,曲率补偿电路会增加额外的运放和电流镜,这些东西自身的失调又会引入新的温度系数,所以设计时需要用Monte Carlo仿真做统计评估,而不是只看典型corner。
跨工艺移植时,BGR最敏感的地方在于三极管模型。台积电的寄生态三极管模型和国内工艺的模型在电流增益β和基极电阻上有差异,尤其是小尺寸三极管,β值可能差30%以上。如果你的BGR电路对β敏感(比如某些低电流设计),这个差异会被直接放大。
更实际的经验是:在BGR的输出端加可编程校准电阻。流片后总会存在工艺偏差,如果预留了6到8位的校准位,可以在测试阶段把输出电压拉回目标值。这个思路也适用于LDO的反馈电阻网络。做芯片和做开发板不一样,流片之后没有“飞线换电阻”的机会,校准电路是AMS设计者的安全网。
3.3 低压差稳压器:稳定性、瞬态响应与PSR
LDO的三大核心指标是稳定性、瞬态响应和电源抑制比,而这三点之间经常是互相冲突的。
稳定性上要重点关注负载电容和ESR。老一代LDO设计依赖外部电容的ESR提供的零点来做补偿,但ESR的工艺和温度漂移很大,工厂批量生产时很难保持一致。所以现在的集成LDO更倾向于内部补偿,做主极点分离,让外部负载电容只承担高频去耦的角色,不再作为补偿元件的一部分。这样做的代价是内部补偿电容占用面积,而且环路增益不能太高,否则仍然会有稳定性风险。
瞬态响应考验的是环路带宽和压摆率共同作用的结果。当负载电流从1mA跳到100mA时,如果误差放大器无法快速响应,输出电压会先跌一段,再慢慢恢复。这个“跌一段”的幅度取决于输出电容的电荷供应能力和环路的响应速度。常见做法是在误差放大器输出端做动态偏置增强,或者在LDO外挂一个小的快速响应通路,专门应对大摆率需求。
PSR优化则是LDO设计里最容易被低估的环节。许多人在做系统集成时,以为LDO输出总是“干净”的,但实际上LDO的PSR是频率相关的,在环路带宽以内PSR很好,带宽以外则逐渐变差。给VCO供电的LDO,如果PSR在电源噪声频率处不够,VCO的相位噪声会被污染。改善方法有两类:一是增大LDO环路带宽,让更多频段的噪声被抑制;二是在LDO输出端做RC低通滤波,把转折频率压到环路带宽以下。RC滤波会牺牲压差,需要在dropout电压规格上做取舍。
4. VCO/PLL/CDR:从环路参数到抖动指标的工程落点
这一组模块是AMS系统里技术含量最高的部分。不是因为电路本身多复杂,而是因为指标之间的关联性非常强,而且一旦闭环,整个环路的动态行为就和每个子模块的非理想特性纠缠在一起。
4.1 压控振荡器相位噪声和调谐范围
VCO选型第一个要回答的问题是:用LC振荡器还是环形振荡器。LC振荡器的相位噪声好,适合射频频段和高性能时钟;环形振荡器不依赖电感,面积小,调谐范围宽,适合中低频和面积敏感的应用。
但在先进工艺节点,LC振荡器有个麻烦事:电感的Q值并不是随工艺线宽缩减而变好的,主要取决于厚金属的电阻率和电容寄生。台积电的射频工艺有专用厚金属层,Q值普遍不错;中芯国际的一些模拟工艺,厚金属可选的层数少,RF模型精度也不如台积电完善,所以同样的LC-VCO拓�铺,在SMIC上可能出现起振裕度不够或相位噪声超标。
另一个容易被忽略的是KVCO的线性度。VCO的调谐曲线不可能是理想的直线,如果在工作频段附近KVCO变化过大,PLL环路增益就会随温度和工艺漂移,导致环路带宽不稳定。设计时尽量让KVCO在工作范围内平坦,或者在PLL里加自适应偏置来补偿。从经验看,把调谐范围分成多个子带,用开关电容阵列做粗调,再用变容二极管做细调,是控制KVCO线性度的有效手段。
4.2 PLL环路带宽与相位裕度哪里来
PLL的设计核心是电荷泵、环路滤波器和VCO之间的参数协同。环路带宽的选择直接决定了锁定时间和抖动性能的矛盾方向:带宽越宽,锁定越快,但对VCO低频噪声的抑制越好,对参考时钟的噪声抑制变差;带宽越窄,参考噪声被滤掉,但VCO的低频相位噪声会直接表现为输出抖动。
工程上的经验是把环路带宽取在参考频率的1/20到1/10之间。这个比例既保证了环路的离散时间效应对稳定性影响很小,又能让电荷泵和鉴频鉴相器的增益波动得到足够的环路增益抑制。相位裕度一般做到45度到55度,小于40度时环路会有明显的欠阻尼,锁定过程中会出现长时间振荡;大于65度虽然稳定,但锁定时间会变长,而且对带内噪声的抑制变差。
在SMIC上做PLL遇到过最典型的问题,是电荷泵电流失配。电荷泵上拉和下拉电流不匹配,会导致每个参考周期产生一个固定的相位误差,最终表现为参考杂散。这个问题的根源在工艺失配,但仿真时如果PDK的失配模型没有覆盖到位,流片后才会暴露出来。解决方案一是做好版图上电流镜的对称布局,二是用校准电路在前端做电流匹配校准,三是把电荷泵的开关时序设计成上下同时导通,缩短开关死区引起的抖动。
4.3 CDR:半速率与相位插值
CDR本质上是一个工作在数据时钟域的特殊PLL。它不从参考时钟恢复时钟,而是从数据跳变沿提取相位信息。设计上两个关键点值得讲:一是鉴相器类型,二是环路实现方式。
Bang-bang鉴相器只有“早了”或“晚了”两种输出,实现简单,但带来的问题是环路会在锁定点附近持续抖动,且这个抖动没有线性模型可以直接套用,只能靠行为级仿真来估计。线性鉴相器(如利用模拟乘法器的Hogge架构)在锁定点附近输出与相位误差成正比的信号,分析起来更标准,但电路面积和功耗更大,而且对工艺偏差敏感。
实际工程里,中高速SerDes的CDR普遍用半速率结构,只利用数据信号的上升沿或下降沿进行采样,以此降低内部时钟频率。半速率结构的关键难点在于相位插值器的精度。相位插值器通过把两个固定相位混合产生中间相位,但其线性度受工艺影响很大,尤其是在SMIC这类工艺的失配模型下,插值误差会直接变成CDR的输出确定性抖动。以我的经验,对相位插值器做后台校准是不够的,前仿真之前就应该先把失配的Monte Carlo分布跑出来,确保插值误差的3σ值不超过0.5个LSB,否则链路发抖就成了常态。
5. TX/RX模拟前端:串行链路完整性的关键面板
TX/RX的模拟前端和前面那些模块不同,它直接面对的是物理信道损伤,包括损耗、反射、串扰和多径。信号从芯片到板级走线再到对端芯片,这一路上必然被信道吃掉高频分量,如果模拟前端不提供均衡能力,接收端的眼图就是一团糊。这一节我只挑对AMS设计最有价值的几块来讲。
5.1 TX:输出摆幅、去加重和驱动
发射端模拟前端的主要任务是:按设定输出幅度驱动信道、提供可编程的均衡能力、以及在各种工艺角下保持输出阻抗匹配。第一点是RX灵敏度和TX功耗之间的折中,幅度越大,信噪比越好,但功耗和EMI风险也越高,所以一般用校准电路把输出摆幅固定在协议规定的范围内。
去加重是TX端最常用也是最有效的均衡手段。原理很简单:信道是低通特性,发送端用预加重手段把高频分量额外增强,就相当于在信道之前做了反向补偿。结果是,高频分量少衰减,低频分量维持原样,接收端收到后各频率分量基本一致。去加重系数通常做成可编程的拨码式设计,比如-3.5dB步进可调,这样在调试时可以针对不同信道长度做优化。
TX驱动器的输出阻抗匹配容易被忽略,但这恰恰是反射问题的关键。如果TX输出阻抗和传输线阻抗不匹配,入射信号会反射,在长链路上形成振铃,严重时直接盖掉信号波形。在SMIC工艺里,输出管的导通电阻随工艺角变化很大,单靠管子尺寸定阻抗基本没戏,必须在输出级加阻抗校准环路,通过比较外部参考电阻和内部并联管子电阻,动态调整驱动管并联数目。
5.2 RX:CTLE、DFE、比较器失调
接收端信号进芯片后,第一件事是经过连续时间线性均衡器(CTLE),把被信道衰减的高频分量补回来。CTLE本质上是一个带零点的高通滤波器,其增益峰值点需要落在信道的损耗频率附近。CTLE的峰值增益做太高,会把信道高端噪声一起放大,所以它只能做“一定程度”的补偿。
如果信道损耗太大,仅靠CTLE不够,就需要加判决反馈均衡器(DFE)。DFE基于判决结果把过去的码间干扰消除掉,相当于自适应均衡。DFE的实现难点在于:反馈路径的延时必须小于一个UI(单位间隔),否则均衡顺序就乱了。在深亚微米工艺下,时序裕量紧张,设计时往往需要把DFE的求和节点和比较器做成一体化设计,尽量减少路径延迟。
RX的模拟前端还有一个容易被忽视的问题:比较器的失调电压。高速SerDes的RX前端通常用比较器完成限幅放大和量化功能,而比较器的失调电压会直接吃掉接收灵敏度。为此,业界普遍的做法是采用输入失调校准,在后台自动测量比较器的失调值,然后通过DAC注入补偿电流。这个校准电路的设计质量,直接决定了最终接收端能支持多小的摆幅,很多项目在低温或高温测试下灵敏度下降,问题往往就是后台校准算法在极端corner下没有收敛。
6. AMS模块从SMIC移植到TSMC的实际流程
最后这部分是实战流程的总结,也包含我踩过的坑。AMS模块移植不像数字代码那样同步替换库单元就行,它涉及器件模型、电压电流偏置、无源器件参数、ESD方案等多个层次,必须分层处理。
6.1 移植的完整流程
我习惯把移植分成四个阶段,每个阶段有明确的出口标准:
第一阶段是PDK差异检查和设计评估。把源工艺和目标工艺的器件列表摆到一起,逐项对照:Vth、金属层数、可用无源器件类型、耐压能力、ESD结构差异。这一步的输出是一张风险清单,标注哪些子电路可能出问题。
第二阶段是原理图级的参数替换。晶体管尺寸不能直接照搬,因为两边的模型参数不同,相同W/L下的偏置电流和工作点会有差异。更稳妥的做法是保留电路拓扑,重新做DC仿真设定偏置点,再根据偏置点反推合适的宽长比。需要注意,替换器件类型时(比如MIM换MOM)要重新做匹配分析,因为两者的单位电容密度和失配特性可能不同。
第三阶段是前仿真验证矩阵。这一阶段建议严格执行一套标准化的仿真清单:所有corner都要跑DC、AC、稳定性、Monte Carlo失配和瞬态;时钟模块额外跑相位噪声和抖动;高速模块额外跑眼图。很多移植项目的失败,都是因为在某个corner下没有做完全,而这种遗漏往往发生在“最不常用的温度角”。
第四阶段是版图移植和物理验证。版图的移植不能靠自动化工具一键完成,尤其是电流镜、差分对、电容阵列这些匹配敏感结构,必须在版图阶段走一遍对称性检查。金属密度规则和天线效应检查在两家工艺里要求不同,需要逐条核对DRC rule deck,而不是依赖经验猜。
6.2 移植仿真中遇到的典型坑
第一个坑是ESD结构的差异导致闩锁风险变化。台积电的IO库有非常成熟的ESD保护结构,而国内代工厂的一些工艺,ESD器件模型和触发特性不如TSMC完善。如果你直接把IP的ESD结构移植过去,不做闩锁测试,流片后ESD等级大概率不达标。建议在移植流程中加一步ESD/EOS专项评审,请有经验的版图工程师参与。
第二个坑是电源域和电压配置差异。先进节点里核心电压和IO电压不同,移植时经常会出现某个模块的电源电压在目标工艺下超出规范上限的情况。比如原来用2.5V IO器件做的驱动电路,目标工艺只有1.8V和3.3V两种选择,就必须重新设计电平转换电路。这种问题在顶层集成SDF仿真时往往不会暴露,但实际芯片上电时会出现漏电路径,所以要在设计阶段就做好电压域核查。
第三个坑是后仿寄生差异。同样的版图面积,在两边的寄生提取结果可能差很多,尤其是金属线之间的耦合电容。这导致原来在源工艺里相位裕度很足的PLL,在目标工艺里可能出现稳定性不足。经验是,无论前仿真结果多完美,都要按目标工艺重新跑完整后仿,并把版图寄生导致的额外相位损失预先留出余量。
6.3 沉淀下来的一份自检清单
几年跨工艺设计做下来,我把常用模块的自检项整理成了一套清单,每次被拉去做评审就直接照着过。
| 模块 | 必查项 | 最容易让我翻车的地方 |
|---|---|---|
| 运放 | GBW、相位裕度、输出摆幅、转换速率 | 负载电容没按目标工艺重新提取 |
| BGR | 温漂、启动时间、PSR | 三极管β模型差异 |
| LDO | dropout、瞬态响应、PSR频率曲线 | 输出电容ESR假设不一致 |
| VCO | 调谐范围、KVCO线性度、相位噪声 | 电感Q值受厚金属层影响 |
| PLL | 环路带宽、相位裕度、参考杂散 | 电荷泵电流失配在SMIC中被低估 |
| CDR | 抖动容限、相位插值器线性度 | 失配导致插值DNL超标 |
| TX | 输出幅度、去加重、阻抗校准 | 工艺角下输出管导通电阻漂移 |
| RX | CTLE增益峰、比较器失调校准、DFE时序 | 极端temperature下校准不收敛 |
这份清单看着不复杂,但每一个条目背后都有过实际的流片教训。项目越赶,越容易在这些基础项上省时间,而最终的失效往往就是这些基础项上省出来的。
最后再分享一个实际操作中的体会:不管手头是台积电还是中芯国际的PDK,一定要保留好每个模块在不同corner下的仿真数据库。做过一次完整移植之后,这些数据就是你后续判断问题的最快参考。很多次我遇到异常波形,第一反应不是重新翻原理图,而是对比之前工艺下的同一仿真点,差异往往一眼就能看出来。