基于Calibre PEX与Spectre Model的版图后仿真完整流程详解
发布时间:2026/10/6 6:45:16 锦皓数字建站

1. 版图后仿真到底在做什么从GDS到波形的完整链路拆解模拟IC设计里有一句话流传很广前仿真跑通只是拿到了入场券后仿真跑通才算真正把电路做出来。很多刚入行的朋友第一次听到“版图后仿真”这个词脑子里浮现的画面可能是打开一个仿真器点一下运行然后看波形。但实际操作过一轮就知道从GDS文件到最终那条干净的波形曲线中间隔着一整套寄生参数提取、模型配置、网表拼接和调试排查的流程任何一个环节出问题波形都可能面目全非。这篇文章要聊的核心就是基于Calibre PEX与Spectre Model的版图后仿真完整流程。关键词里出现的Calibre、PEX、Spectre、GDS、版图后仿真基本覆盖了这条链路上的所有关键节点。Calibre负责的是从版图GDS中提取寄生电阻电容PEX就是Parasitic Extraction的缩写Spectre则是最终执行仿真的引擎配合工艺厂提供的Spectre Model完成晶体管级别的精确计算。整条链路的目标只有一个让仿真结果尽可能逼近芯片流片回来之后的真实表现。适合读这篇内容的人我大致分三类。第一类是正在做模拟电路设计、第一次接触后仿真的工程师或研究生需要一份能照着走的操作指南第二类是有一定前仿真经验但每次跑后仿真都遇到各种报错、结果对不上的朋友想搞清楚问题出在哪第三类是做版图设计的工程师想理解自己画的版图在提取和仿真阶段会经历什么从而在画版图时就有意识地规避一些坑。不管你是哪一类接下来的内容都会从底层逻辑讲到具体操作尽量把每个“为什么”说清楚。需要提前说明的是不同工艺厂、不同PDK版本、不同Calibre和Spectre版本之间具体操作界面和命令会有差异。我下面讲的是基于常见工程实践的通用流程和思路具体参数需要结合你手头的PDK文档来调整。这一点在后面每个环节我都会反复提醒因为后仿真这件事最怕的就是照搬别人的配置而不看自己的工艺文档。2. 整体流程设计与工具选型背后的逻辑2.1 为什么是Calibre PEX加Spectre这套组合在模拟IC设计领域寄生参数提取工具不止Calibre一家仿真器也不止Spectre一个。但实际工程项目里Calibre PEX加Spectre Model这套组合几乎是默认选项原因值得说清楚。Calibre在版图验证领域DRC、LVS、PEX的市占率极高绝大多数工艺厂的PDK都是围绕Calibre做验证的。这意味着工艺厂提供的PEX规则文件通常叫runset或者rule deck是经过充分验证的提取结果的准确性有保障。你如果用其他提取工具很可能找不到对应的官方规则文件得自己写或者找第三方转换风险和成本都高得多。Spectre作为仿真引擎在模拟电路仿真上的收敛性和精度是经过长期验证的。特别是它和工艺厂提供的Spectre Model配合时模型里的各种参数比如噪声、失配、温度特性都能被正确解析。有些朋友会问能不能用其他仿真器跑后仿真技术上可以但模型兼容性和收敛性可能会出问题尤其是先进工艺节点下模型复杂度很高不是所有仿真器都能完整支持。GDS文件是整个流程的起点。版图工程师完成布局布线后导出GDSII格式的版图文件这个文件包含了所有图层信息和几何图形。PEX工具读取GDS和对应的规则文件结合LVS结果就能计算出每个节点的寄生电阻和电容。2.2 前仿真和后仿真的本质区别很多新手会问前仿真已经跑通了为什么还要跑后仿真答案在于寄生参数。前仿真用的是理想网表晶体管之间用理想导线连接没有电阻电容。但实际芯片里金属走线有电阻走线之间有电容晶体管本身也有寄生电容。在低频、小电流的电路里这些寄生参数可能影响不大但在高频、大电流或者高精度电路里寄生参数会显著改变电路的行为——增益下降、带宽变窄、相位裕度恶化、建立时间变长甚至直接振荡。后仿真的本质就是把版图提取出来的寄生电阻电容反标到网表里让仿真更接近真实。你可以把前仿真理解为在理想世界里设计电路后仿真则是把电路扔进真实世界看看它还能不能正常工作。2.3 完整流程的五个阶段从GDS到最终波形整个流程可以拆成五个阶段阶段一版图准备与LVS验证。确保版图和原理图一致这是PEX的前提。阶段二PEX提取配置与运行。设置提取模式、频率、寄生参数类型运行Calibre PEX。阶段三后仿真网表生成与检查。将提取出的寄生网表与原理图网表合并生成可供Spectre仿真的网表。阶段四Spectre仿真配置与运行。设置仿真类型、模型路径、激励条件运行仿真。阶段五结果对比与问题排查。将后仿真波形与前仿真对比分析差异定位问题。这五个阶段环环相扣任何一个环节出错都会导致最终结果不可信。下面我逐个阶段展开讲。3. 核心细节解析与实操要点3.1 版图准备阶段的关键检查项在跑PEX之前有几件事必须确认否则后面全是无用功。第一LVS必须干净通过。PEX工具需要LVS的结果来建立版图节点和原理图节点的对应关系。如果LVS有错PEX提取出来的网表节点会对不上仿真根本跑不起来。我见过不少新手急着跑PEX结果LVS还有几个未连接的节点没处理白白浪费几个小时。第二确认版图层次结构。有些版图工程师喜欢在顶层做很多层次化设计PEX提取时需要决定提取到哪一层。提取层次太深寄生参数过多仿真时间爆炸提取层次太浅关键寄生被忽略结果不准。通常的做法是对关键模块做全提取对非关键模块做层次化提取或者用简化模型替代。第三检查GDS导出设置。GDS导出时要确保所有需要的图层都包含在内特别是金属层、通孔层、多晶硅层这些影响寄生参数的图层。有些工艺厂会提供专门的PEX GDS导出模板建议直接用模板避免遗漏。注意不同工艺节点的金属层厚度、介电常数差异很大PEX规则文件必须和工艺节点严格对应。用错规则文件提取出来的寄生参数完全没有参考价值。3.2 PEX提取模式的选择与参数设置Calibre PEX提供了多种提取模式常见的有提取模式特点适用场景晶体管级提取提取每个晶体管的寄生精度最高关键模拟模块如放大器、比较器门级提取以标准单元为单位提取数字为主的混合信号电路层次化提取保留版图层次结构大型电路需要控制仿真规模简化提取只提取主要寄生快速评估对精度要求不高对于模拟电路我通常建议用晶体管级提取虽然仿真时间会长一些但精度有保障。如果电路规模很大可以考虑对关键路径做晶体管级提取对其他部分做简化提取。提取频率的设置也很关键。PEX工具通常允许你设置一个或多个频率点来提取寄生参数。寄生电阻和电容的频率特性不同电阻基本不随频率变化但电容会。对于大多数模拟电路设置一个主要工作频率点就够了如果是宽带电路可能需要多个频率点。提取的寄生类型也要注意。通常包括金属走线电阻金属间耦合电容金属对地电容晶体管源漏区的寄生电容通孔电阻有些工具还支持提取电感但模拟IC里电感提取比较复杂一般只在射频电路里才需要。3.3 Spectre Model的配置要点Spectre Model是工艺厂提供的晶体管模型文件通常以.scs或.mdl为后缀。配置时要注意几点模型路径要正确。模型文件通常有多个包括典型模型、慢速模型、快速模型等对应不同的工艺角。后仿真时至少要跑典型角条件允许的话把慢速和快速角也跑了。模型版本要和PDK匹配。工艺厂会不定期更新模型文件修复bug或者改进精度。用旧版本模型跑出来的结果可能和新版本有差异建议用PDK里推荐的最新版本。注意模型里的section选择。有些模型文件里分了不同的section比如tt、ss、ff、fs、sf等对应不同的工艺角组合。在Spectre里通过section参数来选择。3.4 后仿真网表的生成与拼接PEX提取完成后会生成一个包含寄生参数的网表文件。这个网表通常是一个子电路形式需要和原理图的网表拼接起来。拼接方式有两种第一种是直接替换。把原理图网表里的理想子电路替换成PEX提取的寄生子电路。这种方式简单直接但需要确保端口对应关系正确。第二种是层次化拼接。在原理图网表里实例化PEX提取的子电路保持原有的层次结构。这种方式更灵活便于调试。无论哪种方式都要仔细检查端口连接。PEX提取的网表端口顺序可能和原理图不一致如果直接替换而不检查很可能连错。提示建议在拼接完成后先用一个简单的直流仿真验证一下网表是否能正常运行。如果直流都跑不通说明网表连接有问题不用急着跑瞬态或交流仿真。4. 实操过程与核心环节实现4.1 Calibre PEX的完整运行步骤假设你已经有了干净的LVS结果和正确的PEX规则文件下面是Calibre PEX的典型运行流程。第一步准备PEX运行目录。通常建议单独建一个目录把GDS文件、LVS结果、PEX规则文件都放进去避免路径混乱。第二步编写PEX运行脚本。Calibre PEX通常通过命令行运行脚本里需要指定# Calibre PEX 运行脚本示例 calibre -pex pex_runset.scs其中pex_runset.scs是PEX规则文件里面包含了提取模式、频率、输出格式等设置。规则文件通常由工艺厂提供你需要在里面修改几个关键参数# PEX规则文件关键参数示例 PEX EXTRACT MODE TRANSISTOR_LEVEL PEX EXTRACT FREQUENCY 1e9 PEX OUTPUT FORMAT SPECTRE PEX OUTPUT FILE post_sim_netlist.scs PEX INCLUDE FILE /path/to/lvs_result PEX GDS FILE /path/to/layout.gds第三步运行PEX。在终端里执行脚本等待提取完成。提取时间取决于电路规模和提取模式小电路几分钟大电路可能几小时。第四步检查提取结果。PEX完成后会生成几个文件包括寄生网表、提取报告、日志文件。重点看提取报告里的寄生参数统计比如总电阻、总电容、节点数量等和预期对比一下如果差异很大说明提取设置可能有问题。4.2 后仿真网表的检查与调试PEX提取出的网表不能直接拿来仿真需要先检查。检查端口连接。打开网表文件找到子电路定义部分确认端口列表和原理图一致。如果端口顺序不对需要手动调整或者修改PEX设置。检查寄生参数数量。如果寄生电阻电容数量异常少可能是提取层次设置不对如果异常多可能是提取了不必要的层次。检查节点命名。PEX提取的节点命名通常和版图一致如果和原理图差异很大拼接时会很麻烦。有些PEX工具支持节点重命名可以提前设置好映射关系。做一次直流工作点仿真。把拼接好的网表用Spectre跑一次直流仿真看工作点是否正常。如果直流都跑不通后面不用继续了。4.3 Spectre仿真配置与运行Spectre仿真的配置主要包括仿真类型选择。根据电路类型选择直流、瞬态、交流、噪声等仿真。后仿真通常至少跑瞬态和交流看时域和频域表现。模型文件加载。在Spectre里通过include语句加载工艺厂的模型文件include /path/to/spectre_model.scs sectiontt激励条件设置。和前仿真保持一致包括电源电压、输入信号、负载条件等。后仿真时激励条件不要随意改否则无法和前仿真对比。仿真精度设置。Spectre提供了多种精度选项后仿真建议用中等或高精度避免因为精度不够导致结果失真。但精度越高仿真越慢需要权衡。运行仿真。配置完成后运行Spectre等待仿真结束。仿真时间取决于电路规模和仿真类型瞬态仿真可能几小时甚至更长。4.4 结果对比与波形分析仿真跑完后最关键的一步是对比后仿真和前仿真的波形。对比指标包括直流工作点各节点电压、支路电流瞬态响应上升时间、下降时间、过冲、振铃交流响应增益、带宽、相位裕度噪声性能输入参考噪声、输出噪声如果后仿真结果和前仿真差异很大需要定位原因。常见的差异来源寄生电阻导致节点电压下降寄生电容导致带宽变窄耦合电容导致串扰通孔电阻导致局部电压降定位方法可以逐步增加寄生参数看哪个参数对结果影响最大。也可以把寄生参数分组分别加入仿真观察每组的影响。5. 常见问题与排查技巧实录5.1 PEX提取阶段的典型问题问题一PEX运行报错提示找不到LVS结果。排查思路检查LVS结果文件路径是否正确文件是否完整。有些PEX工具需要LVS结果里的特定格式如果LVS工具版本和PEX工具版本不匹配可能读不了。问题二提取出的寄生参数数量异常。排查思路检查提取模式设置。如果设置成简化提取寄生数量会少很多。检查提取频率频率设置不对也会影响电容提取。检查GDS文件是否包含所有需要的图层。问题三提取时间过长。排查思路电路规模大时提取时间确实长但可以通过层次化提取来加速。另外检查是否提取了不必要的层次比如数字模块可以简化提取。5.2 后仿真网表拼接的典型问题问题一网表拼接后仿真报错提示节点未定义。排查思路检查PEX网表和原理图网表的节点命名是否一致。如果不一致需要做映射。有些PEX工具支持自动映射需要在规则文件里设置。问题二仿真结果完全不对波形是平的。排查思路检查电源和地是否连接正确。PEX提取的网表里电源和地的节点命名可能和原理图不同需要手动连接。问题三仿真收敛困难一直报收敛错误。排查思路后仿真网表里寄生参数多节点多收敛确实比前仿真难。可以尝试放宽收敛精度、增加迭代次数、使用收敛辅助选项。如果还不行检查是否有悬空节点或者短路。5.3 Spectre仿真阶段的典型问题问题一模型文件加载失败。排查思路检查模型文件路径和section名称是否正确。有些模型文件需要特定的include顺序顺序不对会报错。问题二仿真时间过长。排查思路后仿真节点多仿真时间长是正常的。可以通过减少仿真时间、降低精度、使用多线程来加速。如果实在跑不动考虑对电路做简化。问题三后仿真结果和前仿真差异巨大。排查思路先确认激励条件是否一致。然后检查寄生参数是否合理如果寄生电阻特别大可能是提取设置有问题。最后检查模型文件是否一致前仿真和后仿真用的模型版本要相同。5.4 常见问题速查表问题现象可能原因排查方法PEX报错找不到LVS结果路径错误或文件不完整检查路径重新跑LVS寄生参数数量异常提取模式或频率设置错误检查规则文件设置网表拼接后节点未定义节点命名不一致做节点映射或手动修改仿真不收敛寄生参数过多或悬空节点放宽精度检查网表后仿真结果差异大激励条件或模型不一致对比前仿真设置仿真时间过长电路规模大或精度过高简化电路或降低精度5.5 独家避坑技巧技巧一先跑小电路验证流程。第一次跑后仿真时不要直接上大电路。找一个简单的模块比如一个电流镜或者一个单管放大器把整个流程走一遍确认每个环节都正确。这样即使出问题排查范围也小。技巧二保存中间结果。PEX提取的网表、仿真配置文件、日志文件都要保存好。后仿真调试时经常需要回溯没有中间结果会很麻烦。技巧三版本管理。Calibre和Spectre的版本更新频繁不同版本之间可能有兼容性问题。建议固定一个稳定版本不要频繁升级。如果必须升级先在测试电路上验证。技巧四文档记录。每次跑后仿真时把关键设置、遇到的问题、解决方法都记录下来。下次遇到类似问题可以直接查记录不用重新摸索。技巧五和前仿真对比时先对比直流。直流工作点是基础如果直流都对不上瞬态和交流肯定对不上。先确保直流一致再看动态性能。技巧六注意温度设置。前仿真和后仿真的温度设置要一致。有些模型文件对温度敏感温度不同结果差异很大。技巧七寄生参数分组调试。如果后仿真结果差异大可以把寄生参数分成几组比如金属电阻一组、金属电容一组、晶体管寄生一组分别加入仿真看哪组影响最大。这样能快速定位问题。技巧八不要忽略通孔电阻。先进工艺里通孔电阻可能很大特别是电源和地路径上的通孔。如果后仿真发现电源电压下降先检查通孔电阻。技巧九注意耦合电容的影响。金属走线之间的耦合电容会导致串扰特别是在高阻抗节点上。如果后仿真发现信号上有异常毛刺检查耦合电容。技巧十仿真精度和时间的权衡。后仿真精度越高越慢但精度不够结果不可信。建议先用中等精度跑一遍看结果是否合理再用高精度跑关键指标。6. 工具版本与工艺节点的适配经验6.1 Calibre版本选择Calibre的版本更新比较快不同版本对PEX的支持有差异。根据我的经验选择Calibre版本时要注意几点和PDK匹配。工艺厂的PDK通常会指定推荐的Calibre版本范围。用太新的版本可能PDK还没适配用太旧的版本可能不支持新的提取功能。和LVS工具匹配。PEX依赖LVS结果如果LVS和PEX用的Calibre版本不一致可能出现兼容性问题。建议LVS和PEX用同一个版本。稳定性优先。新版本可能引入新功能但也可能引入新bug。生产环境建议用经过验证的稳定版本不要追新。6.2 Spectre版本选择Spectre的版本选择相对灵活但也要注意模型兼容性。工艺厂的Spectre Model通常指定了支持的Spectre版本范围。用太新的Spectre可能模型文件里的某些语法不支持用太旧的Spectre可能不支持新的模型特性。收敛性。不同Spectre版本的收敛算法可能有差异。如果后仿真收敛困难可以尝试换一个版本。仿真速度。新版本通常在仿真速度上有优化如果仿真时间太长可以考虑升级。6.3 不同工艺节点的注意事项成熟工艺节点如0.18um、0.13um寄生参数相对简单PEX提取速度快后仿真和前仿真差异通常不大。重点检查金属电阻和耦合电容。中等工艺节点如65nm、40nm寄生参数影响开始显著特别是通孔电阻和金属电容。后仿真时需要更仔细地检查提取设置。先进工艺节点如28nm及以下寄生参数非常复杂提取和仿真时间都很长。需要考虑层次化提取和简化仿真。另外先进工艺的模型文件更复杂Spectre配置要更小心。7. 从波形反推问题的调试思路后仿真跑完后如果波形不对怎么从波形反推问题这里分享一套我常用的调试思路。第一步看直流工作点。如果直流工作点偏离预期先检查电源和地连接再检查寄生电阻是否过大。特别是电源路径上的电阻会导致局部电压下降。第二步看瞬态波形的形状。如果上升沿变缓说明节点电容增大可能是寄生电容提取过多或者耦合电容影响。如果出现过冲或振铃说明寄生电感或者电容引起了谐振。第三步看交流响应的频域特性。如果增益下降检查寄生电阻是否形成了分压。如果带宽变窄检查节点电容是否增大。如果相位裕度恶化检查寄生电容是否引入了额外的极点。第四步看噪声性能。如果噪声增大检查寄生电阻是否引入了热噪声。特别是高阻抗节点上的电阻噪声贡献很大。第五步分组排查。如果以上方法还定位不了问题把寄生参数分组逐组加入仿真观察每组的影响。这是最笨但最有效的方法。这套思路的核心逻辑是先看静态再看动态先看时域再看频域先看整体再看局部。按这个顺序排查大部分问题都能定位。8. 一些个人体会和后续扩展方向跑后仿真这件事说难不难说简单也不简单。流程是固定的但每个环节都有细节细节没处理好结果就不可信。我自己的体会是后仿真最花时间的不是跑仿真本身而是排查问题。PEX提取设置不对、网表拼接出错、模型配置有误这些问题都会导致仿真结果异常而定位这些问题往往需要反复尝试。另外一个体会是后仿真不是跑一次就完事的。不同工艺角、不同温度、不同电压条件都要跑工作量很大。所以前期把流程理顺、把脚本写好、把配置模板化后面会省很多时间。后续如果要把这个流程做得更高效有几个方向可以考虑。一是自动化脚本把PEX提取、网表拼接、Spectre仿真、结果对比都串起来一键运行。二是建立检查清单每个环节跑完后自动检查关键指标提前发现问题。三是积累问题库把每次遇到的问题和解决方法记录下来形成自己的知识库。最后分享一个小技巧后仿真跑完后不要只看波形对不对还要看仿真日志里有没有警告信息。有些警告看起来不起眼但可能暗示着潜在问题。比如节点悬空警告、模型参数越界警告都值得关注。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。