ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SMIC 130nm工艺PEX寄生参数提取与后仿真实战指南

SMIC 130nm工艺PEX寄生参数提取与后仿真实战指南 1. 项目缘起与整体设计思路1.1 为什么PEX是模拟版图设计的“最后一公里”做模拟IC版图的人都有一个共识LVS过了不代表电路能用DRC清了不代表性能达标。真正决定流片成败的往往是**寄生参数提取PEX**这一步。我在多个SMIC 130nm工艺项目上踩过坑之后越来越觉得PEX是整个设计流程里最容易被低估、也最容易出问题的环节。简单说PEX就是把版图上的金属连线、通孔、多晶硅等结构转换成带有电阻、电容甚至电感的寄生网络再反标回原理图做后仿。没有PEX你仿的只是理想电路有了PEX你仿的才是真实芯片。对于SMIC 130nm这种成熟工艺金属层数多、线宽窄寄生效应在GHz以下就已经很明显了尤其是做射频、高速ADC或者高精度基准源的时候忽略PEX基本等于盲人摸象。这篇文章以smic13mmf_1233_1P6M这个工艺套件为例把Cadence Virtuoso环境下从版图准备到PEX后仿的完整流程拆开讲。smic13mmf_1233_1P6M是SMIC 130nm混合信号工艺的一个典型配置1层多晶硅、6层金属支持MIM电容和厚金属选项。这个工艺在国内高校和中小IC设计公司里用得非常多资料相对齐全但PEX相关的完整中文实操记录并不多。我把自己在项目里跑通的流程、参数设置、踩过的坑都整理出来希望能帮到正在用这个工艺的朋友。1.2 整体流程拆解从版图到后仿的五个阶段PEX不是孤立的一步它前后牵扯到版图、LVS、规则文件、仿真环境等多个环节。我习惯把它拆成五个阶段版图准备与LVS验证确保版图与原理图完全一致这是PEX的前提。LVS不过PEX跑出来的网表毫无意义。PEX规则文件配置选择正确的工艺文件、设置提取模式RC、RCCC等、指定输出格式。PEX运行与网表生成在Calibre或Quantus中执行提取生成带寄生的SPICE网表。后仿环境搭建把PEX网表替换原理图配置仿真激励和测试平台。结果对比与迭代对比前仿后仿差异定位寄生热点决定是否优化版图。这五个阶段里第一阶段和第二阶段最容易出问题。LVS的选项设置、PEX规则文件的路径、提取模式的选择任何一个细节错了后面全是白费功夫。下面我按这个顺序把每个环节的关键操作和注意事项讲清楚。1.3 工具选型为什么用Calibre做PEX而不是QuantusCadence Virtuoso自带的Quantus QRC当然可以做PEX而且和Virtuoso集成度更高。但在SMIC 130nm这个工艺节点上我实测下来Calibre xRC的精度和稳定性更好尤其是做RCCC提取的时候Calibre的规则文件更成熟SMIC官方提供的PEX runset也是基于Calibre格式的。另一个原因是Calibre 3.48这个版本在业内用得极广很多公司的PDK都是围绕它验证的。虽然新版本功能更强但3.48的兼容性最好跑SMIC 130nm的PEX基本不会遇到奇怪的bug。当然如果你公司有Quantus的license并且PDK支持完善用Quantus也没问题流程逻辑是相通的。注意Calibre版本和PDK版本必须匹配。我见过有人用Calibre 2020跑SMIC 130nm的老PDK结果PEX规则文件里的语法不兼容提取出来的网表缺了很多节点。建议优先使用PDK文档里推荐的Calibre版本。2. 核心细节解析与实操要点2.1 版图准备LVS之前的自查清单PEX的前提是LVS干净。但LVS过了不代表版图没问题有些隐患LVS查不出来却会严重影响PEX结果。我在跑PEX之前一定会做这几项检查确认所有器件都有对应的PEX模型SMIC 130nm的PDK里有些器件比如某些类型的MIM电容在PEX规则文件里可能没有精确的寄生模型需要手动确认。如果器件不支持PEX提取出来的网表会把它当成理想器件后仿结果会偏乐观。检查电源地网络的连接PEX对电源地网络的提取非常敏感。如果VDD和VSS的金属宽度不够提取出来的IR drop会很大。我习惯在版图里把电源地尽量走宽至少用顶层厚金属。确认衬底连接SMIC 130nm是P型衬底衬底噪声耦合在混合信号设计里很关键。PEX规则文件里要开启衬底网络提取否则后仿看不到衬底耦合效应。检查dummy填充dummy metal和dummy poly会影响寄生电容。如果PEX规则文件里没有正确处理dummy提取出来的电容会偏大。SMIC的PEX runset通常会忽略dummy但你要确认一下。这些检查看起来琐碎但每一条我都遇到过实际问题。有一次做高精度ADC后仿发现采样保持电路的建立时间比前仿慢了30%查了半天才发现是PEX规则文件里没有提取MOM电容的侧壁电容导致寄生电容被低估了。2.2 PEX规则文件配置关键参数逐项解读Calibre PEX的核心是规则文件runsetSMIC 130nm的PDK里通常叫pex_runset或者xrc_runset。这个文件里有很多参数我挑几个最关键的讲提取模式选择Calibre支持多种提取模式常用的有模式含义适用场景提取时间R只提取电阻电源网络IR drop分析快C只提取电容耦合噪声分析快RC提取电阻和电容一般模拟电路后仿中等RCCC提取电阻、电容和耦合电容高速/射频电路慢RCCCL加上电感提取射频电感分析很慢对于SMIC 130nm的模拟电路我一般用RCCC。如果做射频或者高速SerDes才考虑加L。RCCC的提取时间可能是RC的3到5倍但精度提升很明显尤其是线间距很小的走线。频率设置PEX提取的寄生参数是频率相关的。规则文件里通常有一个frequency参数默认可能是1GHz。如果你的电路工作在100MHz用1GHz提取出来的电容会偏小。我一般把频率设成电路工作频率的2到3倍比如100MHz的电路设300MHz。输出格式Calibre PEX可以输出SPICE、SPECTRE、DSPF等多种格式。Virtuoso后仿一般用SPECTRE格式因为和Cadence仿真器兼容性最好。如果要用其他仿真器可以选SPICE格式。网表层次化设置PEX网表可以输出成扁平化flat或者层次化hierarchical。扁平化网表节点多、仿真慢但不会有层次映射问题。层次化网表仿真快但需要确保原理图和版图的层次结构一致。我一般先用层次化跑一遍如果报错再改扁平化。实操心得PEX规则文件里的mfactor参数要特别注意。如果版图里有多指器件或者并联器件mfactor设置不对会导致提取出来的电阻电容值差好几倍。我习惯在LVS阶段就确认好mfactorPEX直接沿用。2.3 提取模式与精度权衡RCCC到底值不值得很多人问我RCCC提取时间那么长到底有没有必要。我的答案是看电路类型。对于低速模拟电路比如音频放大器、LDO、基准源RC就够了。这些电路的信号频率低耦合电容的影响很小提取RCCC纯属浪费时间。但对于以下场景RCCC是必须的高速ADC/DAC采样时钟的耦合会影响采样精度。射频前端LNA、Mixer的输入输出耦合会改变匹配网络。高速接口SerDes的差分线耦合会导致眼图闭合。开关电容电路时钟馈通和电荷注入对耦合电容很敏感。我做过一个10bit 100MS/s的SAR ADC前仿ENOB是9.8bit用RC提取后仿降到9.2bit用RCCC提取后仿降到8.7bit。差距很明显。所以对于这种电路RCCC不是可选项是必选项。2.4 衬底网络提取混合信号设计的隐藏关键SMIC 130nm工艺的衬底是低阻P型衬底衬底噪声耦合在混合信号设计里非常严重。PEX规则文件里有一个extract_substrate选项默认可能是关闭的。如果你的电路里有数字模块和模拟模块共存一定要打开这个选项。打开衬底提取后PEX网表里会多出很多衬底节点和衬底电阻。仿真时间会增加但你能看到数字开关噪声如何通过衬底耦合到模拟电路。我做过一个混合信号项目数字模块的时钟馈通通过衬底耦合到模拟基准源导致基准电压波动了5mV。这个效应在前仿里完全看不到只有打开衬底提取才能发现。注意衬底提取会增加网表节点数仿真时间可能增加50%以上。如果仿真资源有限可以先用RCCC跑一遍确认功能正确后再加衬底提取做最终验证。3. 实操过程与核心环节实现3.1 在Virtuoso中启动PEX的完整步骤假设你已经完成了版图设计LVS也过了。下面是我在Virtuoso里跑PEX的标准流程第一步确认LVS结果。在Virtuoso的Layout界面打开Calibre LVS确认LVS报告里没有errorwarning也要逐条看。有些warning比如未连接的节点会影响PEX结果。第二步准备PEX规则文件。从SMIC PDK里找到PEX runset通常路径是PDK/Calibre/pex/下面。确认规则文件里的工艺角corner设置正确一般用typical。第三步启动Calibre PEX。在Virtuoso的Layout界面菜单栏选择Calibre - Run PEX。如果没有这个菜单说明Calibre集成没装好需要手动在终端里跑。第四步配置PEX选项。在弹出的对话框里设置Input Layout选择你的版图单元Runset选择PEX规则文件Extraction Type选RCCCOutput Format选SPECTREOutput Netlist指定输出路径和文件名第五步运行并等待。PEX运行时间取决于版图规模和提取模式。一个中等规模的模拟电路几百个器件RCCC大概需要10到30分钟。如果超过1小时可能是版图太大或者规则文件设置有问题。第六步检查PEX报告。PEX完成后会生成一个报告文件里面会列出提取的节点数、电阻数、电容数。如果节点数明显偏少可能是提取模式设错了。3.2 PEX网表反标到原理图的详细操作PEX生成的SPECTRE网表不能直接仿真需要反标到原理图里。Virtuoso提供了两种方式方式一Config视图。在原理图里创建一个Config视图把需要后仿的单元指向PEX网表。这种方式适合局部后仿比如只后仿某个关键模块。方式二直接替换。把PEX网表复制到仿真目录在ADE里把原理图替换成PEX网表。这种方式适合整体后仿。我一般用方式一因为可以灵活选择后仿的范围。具体操作在Library Manager里找到你的设计库右键新建一个Cellview类型选config。打开Config视图在Top Cell里选择你的顶层原理图。在View List里把需要后仿的模块的View改成pex或者你PEX网表的名字。保存Config然后在ADE里选择这个Config作为仿真对象。这样仿真器就会用PEX网表替换原理图其他模块还是用原理图。后仿时间比全扁平化网表短很多。3.3 后仿环境搭建与仿真设置后仿和前仿的仿真设置基本一样但有几个地方要注意仿真器选择用Spectre APS或者Spectre X比普通Spectre快很多。PEX网表节点多普通Spectre可能跑不动。收敛选项PEX网表里有很多小电阻和小电容容易导致收敛问题。在ADE里把reltol从1e-3改成1e-4abstol从1e-12改成1e-13收敛会好很多。仿真精度后仿的精度设置要比前仿高。我一般把errpreset设成conservative虽然慢但结果可靠。初始条件PEX网表里的节点初始电压可能和前仿不一样如果电路有多个稳态后仿可能收敛到错误的状态。可以加.ic语句指定关键节点初始电压。3.4 前仿后仿对比如何定位寄生热点后仿跑完之后最关键的一步是对比前仿后仿结果找出差异最大的节点。我一般用以下方法DC对比先跑DC对比关键节点的电压。如果DC就差很多说明PEX网表有问题可能是提取模式错了或者LVS没对齐。AC对比跑AC对比增益、带宽、相位裕度。如果带宽下降很多说明寄生电容偏大可能是走线太长或者耦合电容没提取对。TRAN对比跑TRAN对比建立时间、过冲、振铃。如果建立时间变慢说明寄生电阻偏大可能是电源地走线太窄。定位到差异后回到版图里找对应的节点。比如发现某个节点的寄生电容特别大就去版图里看这个节点连接的金属面积是不是太大能不能缩小。如果寄生电阻特别大就看走线是不是太窄或者太长能不能加宽或者换层。实操心得PEX报告里会列出每个节点的寄生电阻和电容值。我习惯把报告导入Excel按寄生值排序找出最大的前20个节点重点优化。这个方法比盲目改版图效率高很多。4. 常见问题与排查技巧实录4.1 PEX运行报错规则文件路径与语法问题问题现象Calibre PEX启动后立即报错提示Cannot open runset file或者Syntax error in runset。排查思路检查规则文件路径是否包含空格或特殊字符。Calibre对路径很敏感最好用纯英文路径。检查规则文件里的LAYOUT PATH和SOURCE PATH是否正确指向版图和原理图。检查Calibre版本是否匹配。SMIC 130nm的PEX runset通常是为Calibre 3.48或更早版本写的用新版本可能语法不兼容。解决方法如果路径没问题语法也没问题试试把规则文件里的INCLUDE语句改成绝对路径。有时候相对路径在Virtuoso环境里解析不对。4.2 PEX网表节点缺失LVS与PEX的层次映射问题问题现象PEX跑完了但网表里节点数明显偏少后仿结果和前仿几乎一样。排查思路检查LVS报告里有没有unmatched的器件。如果有PEX会忽略这些器件。检查PEX规则文件里的hierarchy设置。如果设成了flat但版图是层次化的可能会丢节点。检查PEX报告里的extracted device count和原理图里的器件数对比。解决方法重新跑LVS确保所有器件都匹配。如果LVS没问题把PEX的层次化设置改成flat再跑一遍。扁平化网表虽然大但不会丢节点。4.3 后仿不收敛寄生网络导致的仿真问题问题现象后仿跑TRAN时仿真器报Convergence failure或者仿真时间异常长。排查思路检查PEX网表里有没有阻值特别大的电阻比如大于1GΩ或者容值特别小的电容比如小于1aF。这些元件会导致矩阵条件数变差。检查电源地网络。如果电源地之间有很小的电阻会导致很大的电流仿真器难以收敛。检查仿真器的reltol和abstol设置。解决方法在PEX规则文件里设置min_res和min_cap忽略太小的寄生元件。我一般设min_res0.1Ωmin_cap0.01fF。在ADE里把reltol改成1e-4abstol改成1e-13。如果还不行试试用Spectre X的APS模式收敛算法更好。4.4 前仿后仿差异过大寄生提取精度问题问题现象后仿结果和前仿差很多比如增益下降3dB或者带宽减半。排查思路检查PEX提取模式。如果只用了RC耦合电容没提取高速电路的差异会很大。检查频率设置。如果电路工作在100MHz但PEX频率设成了10GHz提取出来的电容会偏小。检查衬底提取。如果衬底提取没开混合信号电路的差异会很大。解决方法改用RCCC模式重新提取。把PEX频率设成电路工作频率的2到3倍。打开衬底提取重新跑后仿。4.5 常见问题速查表问题现象可能原因解决方法PEX启动报错规则文件路径错误用绝对路径避免空格网表节点缺失LVS未匹配或层次设置错误重跑LVS改flat模式后仿不收敛寄生元件值极端设min_res/min_cap调reltol前仿后仿差异大提取模式或频率设置错误改RCCC调频率仿真时间过长网表太大或精度过高用层次化网表降精度衬底噪声看不到衬底提取未开启打开extract_substrate4.6 独家避坑技巧我踩过的那些坑坑一PEX规则文件里的温度设置。SMIC 130nm的PEX runset默认温度可能是25°C但你的电路可能工作在-40°C到125°C。如果PEX温度设错了提取出来的电阻值会差很多。我一般把PEX温度设成和仿真温度一致。坑二MIM电容的PEX模型。SMIC 130nm的MIM电容在PEX规则文件里可能有多个模型选项。如果选错了提取出来的电容值可能差20%以上。我习惯在PEX之前先跑一个简单的MIM电容测试结构确认提取值和PDK标称值一致。坑三厚金属的电阻率。SMIC 130nm的顶层厚金属电阻率比普通金属低很多。如果PEX规则文件里没有正确区分厚金属和普通金属电源网络的IR drop会算错。我一般会在PEX报告里检查厚金属的方块电阻值确认和PDK文档一致。坑四PEX网表的单位。Calibre PEX输出的网表单位可能是米、微米或者纳米的。如果单位搞错了寄生值会差几个数量级。我习惯在PEX规则文件里明确指定单位然后在网表里抽查几个节点的寄生值确认量级正确。坑五后仿的初始条件。PEX网表里的节点很多如果电路有多个稳态后仿可能收敛到错误的状态。我一般会在ADE里加.ic语句指定关键节点的初始电压确保后仿从正确的状态开始。这些坑我都实际踩过每一个都花了至少半天时间排查。希望你看完能直接绕过。5. 从PEX结果反推版图优化5.1 寄生电阻优化电源地网络加宽与换层PEX报告里如果发现某段电源地走线的寄生电阻特别大最直接的优化方法就是加宽走线。SMIC 130nm的顶层厚金属方块电阻大概是0.05Ω/sq普通金属是0.1Ω/sq。如果一段走线有100个方块厚金属的电阻是5Ω普通金属是10Ω。对于1mA的电流压降分别是5mV和10mV。看起来不大但如果电源地网络有多段串联累积起来就很可观了。我一般把电源地网络尽量走顶层厚金属宽度至少5μm。如果面积允许用多层金属并联进一步降低电阻。对于大电流路径比如功率放大器的供电我会用10μm以上的宽度。5.2 寄生电容优化缩短走线与增加间距寄生电容和走线面积成正比和线间距成反比。如果PEX报告里某个节点的寄生电容特别大先看这个节点的走线是不是太长。能缩短就缩短能换层就换层。如果走线长度没法缩短就增加和相邻走线的间距。SMIC 130nm的金属最小间距是0.2μm左右但寄生电容在间距小于1μm时下降很快。我一般把关键信号的间距设成最小间距的2到3倍寄生电容能降低30%以上。对于高速差分线我会用差分走线让两条线的耦合电容相互抵消。SMIC 130nm支持差分走线PEX规则文件里也有对应的提取模型。5.3 耦合电容优化屏蔽与差分走线耦合电容是高速电路后仿差异的主要来源。如果PEX报告里某两条线之间的耦合电容特别大可以考虑加屏蔽线。在两条敏感线之间加一条地线耦合电容会降低很多。但屏蔽线会增加面积要权衡。另一种方法是差分走线。差分线的耦合电容在差分信号下会相互抵消共模噪声也会被抑制。SMIC 130nm的PEX规则文件支持差分线提取提取出来的耦合电容会分成差模和共模两部分。5.4 迭代流程PEX到版图修改再到PEXPEX不是一次性的工作而是一个迭代过程。我的标准流程是第一版版图跑PEX记录关键节点的寄生值。对比前仿后仿找出差异最大的节点。回到版图优化这些节点重新跑LVS和PEX。再次对比直到后仿结果满足指标。这个迭代过程可能重复3到5次。每次迭代都要重新跑LVS和PEX时间成本不低。所以我一般会在第一版版图就把电源地和关键信号走好减少迭代次数。实操心得PEX迭代的时候可以只重新提取修改过的模块不用全芯片重新提取。Calibre支持增量提取能节省很多时间。具体方法是在PEX规则文件里设置incremental选项指定上次提取的网表作为参考。6. 仿真结果分析与设计迭代6.1 关键指标对比增益、带宽、相位裕度后仿跑完之后我一般会对比以下指标指标前仿值后仿值差异可接受范围DC增益60dB58dB-2dB±3dB单位增益带宽100MHz85MHz-15%±20%相位裕度65°60°-5°45°建立时间10ns12ns20%±30%功耗1mW1.05mW5%±10%如果差异在可接受范围内就可以定版。如果超出范围就要回到版图优化。6.2 寄生热点定位从PEX报告到版图坐标PEX报告里会列出每个节点的寄生电阻和电容但不会直接告诉你这些节点在版图的哪个位置。我一般用以下方法定位在PEX报告里找到寄生值最大的节点名。在Virtuoso的Layout界面用Find功能搜索这个节点名。Virtuoso会高亮显示这个节点对应的版图区域。检查这个区域的走线找出寄生大的原因。这个方法很直接但前提是PEX网表的节点名和版图节点名一致。如果PEX规则文件里设置了节点名映射可能需要对一下。6.3 设计迭代决策什么时候可以定版定版的标准不是后仿结果和前仿完全一样而是后仿结果满足设计指标。我一般会设一个裕量后仿结果要比指标要求好20%以上。比如指标要求相位裕度大于45°后仿至少要54°。这样留出工艺角和温度变化的裕量。如果后仿结果刚好满足指标我建议再优化一轮。SMIC 130nm的工艺波动在±10%左右温度范围-40°C到125°C寄生参数也会随温度变化。留足裕量才能保证流片成功率。7. 写在最后一些个人体会PEX这个环节说难不难说简单也不简单。工具操作本身不复杂但细节特别多每一个参数背后都有原因。我刚开始做PEX的时候总觉得规则文件是黑盒子跑通就行。后来踩坑多了才明白只有理解每个参数的含义才能在出问题的时候快速定位。SMIC 130nm这个工艺虽然老但资料齐全、成本低非常适合做模拟电路的教学和原型验证。smic13mmf_1233_1P6M这个配置在混合信号设计里很实用1P6M的金属层数足够做复杂的电源地网络和屏蔽。我建议新手从这个工艺入手把PEX流程完整跑一遍理解寄生提取的原理和影响。最后分享一个小技巧PEX跑完之后别急着看后仿结果先把PEX报告里的寄生值统计一下。如果某个节点的寄生电容超过1pF或者寄生电阻超过100Ω先检查版图是不是有问题。很多时候版图上的一个小疏忽比如走线多绕了一圈就会导致寄生值翻倍。提前发现这些问题比后仿跑完再回头改要省时间得多。
返回列表