ARTICLE DETAIL

资讯详情

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

PEX寄生参数提取全流程:XRC加载与CMOS反相器后仿真避坑指南

PEX寄生参数提取全流程:XRC加载与CMOS反相器后仿真避坑指南 PDK装好、版图DRC/LVS全绿、前仿真波形完美——结果后仿真一跑就翻车这种事情在模拟IC设计里太常见了。很多刚接触Cadence Virtuoso后端流程的工程师卡在最开始的那道坎上PEX寄生参数提取到底怎么跑XRC文件加载进去报错怎么办后仿真不收敛该从哪里查起这篇文章我就围绕XRC加载、PEX提取配置、CMOS反相器后仿真完整链路把我自己踩过的坑和排查思路一次讲清楚适合正在做版图设计、准备跑后仿真的学生和工程师参考。1. 为什么后仿真难倒一片人寄生参数提取的底层逻辑1.1 前仿真和后仿真的本质区别前仿真用的是理想器件模型你画一个反相器原理图里的MOS管只有模型本身定义的特性连线被当成理想的零电阻、零电容导线。这在低频或者工艺节点比较大的时候误差不大但工艺进入深亚微米之后互连线的电阻和电容已经能明显改变电路行为——信号延迟变大、边沿变缓、耦合噪声串扰、甚至功耗上升这些都是前仿真完全看不到的。后仿真就是在版图完成之后用寄生参数提取工具把版图里实际存在的导线电阻、电容、衬底寄生等计算出来反标到网表里再用仿真器重新跑一遍。这一步的精度和真实性直接决定了流片回来能不能一次点亮。你可以在Virtuoso里做这件事也可以用Calibre xRC之类的第三方工具关键路径都类似读版图 → 识别器件 → 提取互连寄生 → 输出带寄生信息的网表或视图 → 交给仿真器。1.2 寄生参数从哪里来导线不是理想的要理解PEX里那些选项的含义先得搞明白寄生到底从哪冒出来。第一类是互连线电阻。金属有线阻通孔有接触电阻信号走线越长、越细电阻越大。对于高速信号或电源线IR drop会让芯片内部电压和外部电源对不上。第二类是互连线电容。同一层金属之间的间距耦合是平板电容上下层金属之间的交叠是耦合电容这些电容给信号线提供了对地和对相邻网络的充放电路径直接影响信号边沿速率和串扰。第三类是器件本身的寄生。MOS管有源区的源漏电阻、栅极多晶硅电阻、栅氧化层电容与交叠电容这些通常已经在模型里有一部分但版图实现时的具体形状和接触孔数量会影响实际值PEX会根据版图重新计算一部分寄生。PEX做的事情就是基于版图的几何图形按照工艺厂提供的规则文件里的模型公式把上述三类寄生元素计算出来。1.3 PEX提取流程在Virtuoso中的定位在Virtuoso的环境中典型流程是原理图 → 版图 → DRC → LVS → PEX提取 → 后仿真。PEX依赖LVS的结果和规则文件来判断器件识别是否正确所以如果LVS都没有跑干净PEX出来的结果也是不可信的。PEX的入口通常有两个一是在版图编辑器的菜单里启动PEX工具二是从ADE的Setup菜单里选择提取视图。不管哪种方式核心步骤都是加载规则文件、选择提取模式、指定输出格式然后执行提取。很多人会问“PEX到底用内置的Assura/QRC还是用Calibre”这个其实取决于你的PDK提供哪套规则文件。有些PDK只有Calibre的xRC文件有些则同时提供QRC能识别的xRC/qrc文件。标题里说的“XRC加载”本质上就是在PEX环境里把工艺厂提供的寄生提取规则文件正确挂进去。2. XRC规则文件的加载与配置从文件路径到库环境2.1 XRC规则文件到底是个什么文件XRC文件是工艺厂随PDK一起发布的寄生参数提取规则文件不同工具链里后缀和格式有差异Calibre的往往是.cal或.xrcQRC的往往是.qrc或.qxrc。它们共同的功能是告诉提取工具哪些层是金属、哪些层是通孔、层间介质厚度是多少、方块电阻率是多少、边缘电容公式系数是多少。在PEX Setup里填入规则文件路径后工具会解析这些规则再结合你的版图GDSII数据去做几何运算。所以规则文件和工艺节点必须匹配拿0.18μm的xrc去提40nm的版图结果纯粹是瞎扯。2.2 检查PDK环境techfile、display、LVS一个都不能少在加载XRC文件之前先确认基础环境是完整的。我自己遇到过的典型情况是装了PDK后能画版图但PEX一跑就报“layer mapping”相关错误。原因是只有techfile生效了而PEX还需要一组图层映射定义来把版图里的层名和规则文件里的层名对应起来。你需要确认库里有这几个关键文件工艺的techfile定义了图层和工艺属性display.drf或display资源文件负责显示样式缺了虽然能跑但不方便调试LVS规则文件PEX依赖它做器件识别XRC/QRC规则文件做寄生计算。如果文件都在但PEX读取时报找不到层定义重点看路径和文件权限不要放在带中文和空格的路径下。很多PDK要求工作目录不能有空格这个坑在服务器环境下尤其常见。2.3 PEX Setup面板的正确打开方式在Virtuoso版图编辑器里通常通过菜单 Launch → PEX 打开PEX Setup窗口。如果你的PDK支持QRC这里会有一个“PEX”选项卡如果用的是Calibre集成会看到Calibre xRC的入口。PEX Setup里必填的核心项目有这几项Rule File指向XRC规则文件Extraction Type选择提取模式后面详细说Netlist Format一般选spectre或hspice取决于你后续仿真用什么仿真器Output View Name提取结果生成到哪个cellview比如calibre或av_extracted是否生成 extracted view这个勾选后会在库中生成一个带寄生信息的视图方便在ADE中直接调用。填完之后可以先点“Pre-Run Check”或者“Run PEX”之前先跑一个DRDDesign Rule Check之类的前置检查确认版图和规则文件之间没有明显冲突。2.4 规则文件加载失败的常见根因根据我自己的经验加载XRC文件报错的场景通常集中在几个原因上第一路径不对或者文件被移动。PDK装好后不要把规则文件随便拷到自定义目录除非你能保证相对路径不破坏PDK内部的依赖关系。有些PDK的xrc文件内部会引用同目录下的其他变量文件单独拷一个文件过来就会报缺文件。第二权限不够。多人共用服务器时PDK安装在共享目录但当前账号没有读权限PEX会在某个环节静默失败。用ls -l确认一下规则文件至少是-r--r--r--。第三版本不匹配。Virtuoso版本、PDK版本和XRC规则文件版本三者要匹配老版本的Virtuoso可能无法解析新版PDK的xrc语法或者反过来新版本工具已经废弃了老规则文件里的某个指令。这个只能通过查看PDK的release notes来确认。如果排除了这些还是报错最粗暴但有效的办法是新建一个干净的library只加载PDK标准环境在PDK自带的example版图上先跑一次PEX。如果example能过而你自己的版图失败那问题出在版图本身如果example也失败那基本可以断定是环境或规则文件的问题。3. 提取模式与参数选择如何让寄生提取既准又不慢3.1 noRC / R / C / RC / RCCC 怎么选PEX里最常见的提取模式选项如下表模式提取内容适用场景noRC不提取寄生只生成纯器件网表验证流程、只跑LVS逻辑检查R只提取寄生电阻主要关注电源IR drop、地弹C只提取寄生电容关注信号耦合、负载电容RC同时提取电阻和电容大多数后仿真的默认选择RCCC额外提取耦合电容高速信号、差分对、敏感模拟节点对CMOS反相器这类数字基础单元做后仿真用RC通常就够用。但如果你做的是模拟电路里的高精度运放、比较器或者振荡器信号网络之间的耦合电容会成为影响性能的关键因素建议直接选RCCC。耦合电容在提取网表里会体现为两个网络之间的电容仿真时会出现多出的容性路径这也是后仿真精度提升的直接来源。3.2 提取范围与器件端口的处理PEX不是把你整块版图的所有东西都提成寄生参数那样网表会爆炸。实际提取时工具会先识别出器件MOS、电阻、电容等把有源器件保留为器件实例再针对互连线计算寄生R和C。需要注意的细节是器件端口映射。MOS管的源漏衬底分别对应版图的哪些区域是靠规则文件里的device definition来定义的一旦PEX识别器件的端口顺序和原理图symbol管脚顺序不一致提取后的网表就会出现节点错连。这种错误仿真不一定会报错但结果完全错误非常隐蔽。如果你在PEX生成的extracted view里看到某个MOS管的衬底节点悬空或者电阻两端接反了优先检查LVS的匹配结果和规则文件里的端口定义。3.3 网表格式与输出选项的选择输出格式直接决定后仿真怎么跑。在Virtuoso环境里我最常用的输出是spectre格式的extracted view这样在ADE中map到该视图后可以直接跑spectre仿真不需要手动处理网表。如果后续要用HSPICE跑那就输出HSPICE格式的网表同时确认PDK提供的模型库也是HSPICE语法。另外有个选项叫“Reduce Parasitics”打开后工具会对小于阈值的寄生RC做合并或丢弃目的是减小仿真规模。对于验证用的后仿真可以适当打开但阈值不要设太大否则会把一些关键网络的寄生丢没后仿真结果反而失真。4. CMOS反相器后仿真全流程实操4.1 版图准备与布局检查后仿真之前反相器的版图必须已经通过LVS。这里有一个很多人忽略的点版图的输入输出引脚pin一定要打在金属层上并且用正确的pin layer标识。如果pin只是画在原理图里版图里没有对应pinPEX提取后的网表就没有外部端口后仿真根本挂不上激励。检查方法是在Virtuoso版图编辑器里用Verify → Connectivity查看pin是否被识别。引脚名称和原理图一致是最基本的否则后仿真的激励找不到网络。4.2 运行PEX生成calibre view以PDK提供的PEX流程为例我在实操中常用的步骤是打开反相器的版图cellview菜单 Launch → PEX打开PEX SetupRule File选择PDK提供的xrc文件Extraction Type选RCCCOutput View Name填calibre确认Netlist Format是spectre点击Run PEX观察运行日志。运行完成后库中会多出一个名为calibre的view这就是带寄生参数的提取视图。可以在Library Manager里看到该cell下同时存在schematic、layout、calibre三个view。4.3 在ADE中挂载提取视图并配置模型后仿真在ADE中跑关键一步是让仿真器用提取视图而不是原理图。具体操作是在ADE L或ADE XL中打开反相器的testbench然后在Setup → Environment里找到View List把calibre或av_extracted排在schematic前面。这样仿真器会优先选择提取视图。模型库的加载同样关键。PEX提取后的网表里每个MOS器件依然会有model name比如nch、pch仿真器必须能在模型文件里找到对应的模型定义。如果在model library setup里漏加载了PDK的spectre模型文件就会报“器件未定义”的错误。我建议在testbench里用一个理想脉冲源作为输入VDD设为工艺标准电压跑一个20ns的瞬态仿真把输出波形和前仿真叠在一起对比。4.4 前仿与后仿波形的对比解读后仿真结果出来后不要只看“能不能翻转”。对比前仿和后仿波形时我一般关注这几个点输出上升沿和下降沿是否变缓这反映了输出节点寄生电容的大小门延迟是否变大这对应了寄生RC的组合效应输出波形是否有毛刺、回勾这往往是寄生电感和耦合电容带来的振荡电源电流是否偏大这可能是寄生电容在开关过程中充放电导致的动态功耗增加。如果后仿真的延迟比前仿多出30%~50%在深亚微米工艺下都算正常。如果多出好几倍就要回头检查提取规则是否选错或者有没有把很大的寄生电容错误地挂在关键节点上。5. 后仿真中的三个高频雷区与排查链路5.1 瞬态不收敛不是仿真器不行是电路状态不对后仿真最常见的报错就是No convergence in transient analysis之类。很多人第一反应是换积分算法、改步长但这些只是治标真正的原因往往是后仿真网表引入了大量寄生电容导致电路的初始状态和前仿真差很远。我的排查链路是这样的第一步在瞬态仿真的Initial Condition里给关键节点设置一个合理的初始化电压比如反相器输入端设为0输出端设为VDD。如果加上初始条件后能收敛说明是初始状态问题。第二步给电源加一个缓慢的启动斜坡。真实芯片上电时VDD也是逐渐爬升的仿真器里如果把VDD直接设成阶跃0到1.8V配合大寄生电容很容易产生数值不收敛。用pw(0 0 10u VDD)这样的源让电源在10μs内从0线性上升到VDD电路更容易找到一个稳定的工作点。第三步如果还是报不收敛检查仿真器选项里的reltol和iabstol是否合适。有时候调大reltol到1e-3、减小最大步长就能绕过数值振荡点。5.2 器件未定义与模型加载失败网表和model library脱节PEX提取后的网表在仿真时提示Device nch is not defined这个错误的根源几乎都是模型库没有正确加载。排查链路是先看提取视图里的器件调用的model name是什么。打开提取生成的spectre网表或extracted view的参数列表确认里面写的是nch还是nch_25od之类去PDK模型文件里搜索这个model名是否存在。很多PDK按电压域把模型拆成多个文件比如rf_models.scs、lvt_models.scs如果只加载了普通阈值模型文件而版图里用了低阈值器件就会报未定义。另外一种是模型文件加载了但版本不对。PDK更新后模型文件名带上了版本号比如xxx_v2.2.scs如果testbench里还指着旧文件名自然找不到。这个问题的核心教训是提取视图里的器件模型名要和仿真模型库里的模型名严格对应一个字都不能差。5.3 提取视图中的寄生元素导致的结果偏移有时候后仿真能跑通但结果诡异比如反相器输出总是慢半拍、出现不明毛刺、某个节点电压到不了满摆幅。这种时候不要急着怀疑寄生提取错了先自己在提取视图里查一下网表。我用过最实用的一个方法在ADE里跑仿真的同时把仿真器的simulation output里的网表文件打开搜索输入节点和输出节点对应的网络名看看哪些器件挂在这些网络上。你会清楚地看到每个net上带了多少个寄生电容和电阻。如果发现输出网络上有几个几十fF的电容那后仿真延迟变大就很合理。如果发现某个应该是直连的节点被串了一个100kΩ的电阻那说明提取时通孔电阻算得太狠或者这条线路本身走线太长太细版图设计上需要优化。这类问题反映了后仿真最大的价值不是“验证电路对不对”而是“验证版图画得对不对”。6. 实战总结PEX提参流程的检查清单与个人心得最后把整套流程浓缩成一份可在实际项目中直接对照的检查清单方便你后仿真遇到问题时按顺序排查。阶段检查项高频问题环境PDK版本、Virtuoso版本、rule文件路径路径含空格、权限不足、文件被移动版图LVS是否通过、pin是否齐全版图pin缺失、端口名不一致PEX配置提取模式、输出格式、输出view名选错模式、netlist格式不对模型库model name对应、模型文件加载漏加载、版本不匹配仿真设置电源斜坡、初始条件、积分算法瞬态不收敛、步长过大结果解读与前仿波形的从延迟、边沿、电流差异只关注翻转而忽略边沿退化根据我个人实际跑过的大量后仿真case有一个心得想分享给你后仿真的坑大多不是工具不会用而是流程中的某个环节被跳过了。LVS没过硬跑PEX、模型库没检查就启动仿真、规则文件不匹配还硬跑——每一个偷懒都会在后仿真阶段十倍返还。如果你现在正卡在XRC加载或者后仿真不收敛的问题上建议不要急着去折腾仿真器参数先拿着这份清单从环境开始逐项核对。把每一步走扎实后仿真就是你尽早发现版图问题的关键工具。
返回列表