☰
Cadence Virtuoso PEX后仿:GND与电源网络设置实战指南
2026/10/6 14:43:28 网站建设 项目流程

1. 为什么PEX只提RC远远不够

很多刚接触Cadence Virtuoso版图后仿真的朋友,第一次跑PEX(Parasitic Extraction,寄生参数提取)的时候,注意力全在RC上——盯着提取出来的耦合电容、电阻网络,看数值合不合理,看提取模式选没选对。结果兴冲冲把网表拿去跑后仿,波形一塌糊涂,增益掉了、带宽缩了、甚至电路直接不收敛。回头查了半天,发现RC提取得没问题,问题出在一个特别容易被忽略的地方:GND和电源网络的设置。

我拿IC617做过好几轮实测,这个坑踩过不止一次。PEX工具在提取寄生参数的时候,默认是把所有衬底、阱、电源地网络当成理想节点处理的。也就是说,它不会自动帮你把版图里那些分散的衬底接触、电源条、地条归并到同一个全局网络上。如果你不手动指定,提取出来的网表里可能会出现几十个甚至上百个独立的“GND”节点,每个节点之间没有连接关系。后仿的时候,这些节点各自为政,电流回路根本走不通,仿真结果自然不可信。

这篇文章就是围绕这个问题展开的。我会把PEX里GND和电源网络设置的完整流程拆开讲清楚,包括为什么要设、在哪个环节设、具体怎么操作、参数怎么填、设完之后怎么验证。内容基于IC617的实际操作界面,但底层逻辑对IC6.1.8、ICADVM等版本同样适用。不管你是刚上手PEX的新人,还是跑过几次但结果总不太对的老手,这篇应该都能帮你省下不少debug时间。

核心关键词先摆出来:Cadence Virtuoso、PEX、IC617、GND、电源网络。这几个词贯穿全文,后面每个环节都会围绕它们展开。

2. PEX中GND与电源网络的核心作用拆解

2.1 PEX到底在提取什么

先把这个事情说透。PEX的全称是Parasitic Extraction,寄生参数提取。它干的事情是:拿版图数据(GDS或OA库),结合工艺文件(ICT、ITF或规则文件),把金属连线、通孔、多晶硅、有源区这些结构产生的寄生电阻和寄生电容算出来,生成一个带寄生参数的网表,供后仿真使用。

提取出来的寄生参数主要分两类:寄生电阻和寄生电容。电阻主要来自金属线和通孔,电容则包括线间耦合电容、线对衬底电容、交叉线电容等。这些参数会以子电路的形式插入到原始网表中,或者以SPEF、DSPF等格式输出。

但这里有个关键点:PEX工具在计算电容的时候,需要一个参考电位。线对衬底电容的“衬底”是什么?线间耦合电容的两端分别接什么?这些都需要工具知道哪些网络是地、哪些是电源。如果你不告诉它,它就只能按默认假设来处理,而默认假设往往和你的实际设计意图不一致。

2.2 GND和电源网络在PEX中的角色

在PEX流程里,GND和电源网络扮演三个角色:

第一个角色是参考节点。提取线对衬底电容时,工具需要知道衬底接的是什么电位。通常衬底接的是地(GND),但有些工艺里衬底可能接负压,或者有多个阱接不同的电源。如果你不指定,工具可能把所有衬底都当成同一个理想地,这就会导致提取出来的电容值偏差。

第二个角色是全局网络归并。版图里地线和电源线往往是网格状的,有很多条分支。在原理图里,它们都连到同一个GND符号或VDD符号上。但在版图里,这些线是物理上分开的,PEX提取时会把它们当成不同的节点。如果不做全局网络声明,提取出来的网表里会出现GND_1、GND_2、GND_3……这些节点在网表里是悬空的,后仿时电流没有回流路径。

第三个角色是衬底网络建模。先进工艺里,衬底不再是理想的,它有电阻。PEX可以提取衬底网络,但前提是你得告诉它衬底网络的端子接哪里。这个端子通常就是GND和电源网络。

我打个比方。PEX提取寄生参数就像给一栋大楼画电路图。RC提取是画楼里的电线和水管,GND和电源网络设置是告诉画图的人:这栋楼的总接地在哪里,总配电箱在哪里。你不说,画图的人就只能假设每层楼都有自己的独立接地和配电,最后画出来的图当然没法用。

2.3 不设置会怎样:实测现象记录

我在IC617里做过对比实验。同一个版图,同一套工艺文件,只改GND和电源网络的设置,跑出来的后仿结果差异非常明显。

不设置的情况:提取出来的网表里,GND节点有47个,VDD节点有23个。跑瞬态仿真,输出波形在上升沿出现明显的振铃,幅度比前仿大了将近30%。跑AC仿真,低频增益掉了6dB,相位裕度从65度降到41度。最要命的是,仿真时间比设置之后长了将近一倍,因为求解器要处理大量悬空节点。

设置之后的情况:GND归并成一个全局节点,VDD归并成一个全局节点。瞬态波形振铃消失,AC增益和相位裕度跟前仿基本吻合,偏差在5%以内。仿真时间也恢复正常。

这个对比说明一个问题:PEX提取的RC数值再准,如果网络连接关系不对,后仿结果就是废的。GND和电源网络设置不是可选项,是必选项。

3. IC617中PEX设置GND与电源网络的完整实操

3.1 操作入口与前置准备

在IC617里,PEX的启动方式是从版图窗口菜单栏走:Launch → Plugins → Parasitic Extraction,或者直接在CIW里敲命令启动PEX工具。我用的是PVS(Physical Verification System)流程,如果你用的是Assura或Calibre做PEX,界面会不一样,但核心逻辑相通。

启动PEX之前,有几件事必须先确认:

  • 版图LVS已经跑通。PEX依赖LVS生成的网表和版图对应关系。LVS没过,PEX提取出来的网表跟原理图对不上,后面设置GND也没意义。
  • 工艺文件路径正确。ICT文件、ITF文件、规则文件这些要指向正确的工艺库。IC617里通常在PEX Setup的“Extraction Rules”页面指定。
  • 原理图里的GND和电源符号命名要统一。比如原理图里用的是“GND”和“VDD”,版图里对应的标签也应该是“GND”和“VDD”。如果原理图用“gnd!”、版图用“GND”,PEX可能识别不到对应关系。

提示:建议在跑PEX之前,先在版图里用“Mark Net”功能把GND和电源网络高亮出来,确认版图里这些网络的标签是完整的、没有断开的。我遇到过版图里某段地线忘了打标签,PEX提取时那段就被当成普通信号线处理了。

3.2 在PEX Setup中找到网络设置页面

PEX工具启动后,会弹出一个Setup窗口。IC617的PEX Setup界面左侧是一列配置项,从上到下大概是:Input、Output、Extraction、Netlist、Advanced。GND和电源网络的设置藏在Extraction或者Netlist页面里,具体位置取决于你用的PEX引擎版本。

我用的是PVS引擎,设置入口在Extraction → Net Options。点进去之后,会看到一个表格,列名大概是:Net Name、Type、Voltage、Global。这个表格就是用来声明全局网络的。

如果你用的是Assura引擎,入口在Extraction → Global Nets。界面长得不一样,但功能一样:告诉工具哪些网络是全局的、是什么类型。

注意:不同版本的IC617,PEX Setup界面可能有细微差异。如果你找不到“Net Options”,试试在Setup窗口里搜“Global”或者“Net”关键词。实在找不到,查一下你用的PEX引擎的官方文档,搜“global net”或“power ground net”。

3.3 具体参数填写与含义解读

在Net Options表格里,你需要为每个全局网络填几列信息。我拿GND和VDD举例,把每一列的含义和填法说清楚。

Net Name:网络名称。填版图和原理图里实际使用的名字。比如“GND”、“VDD”、“AVDD”、“DVDD”。注意大小写要一致,IC617对网络名是区分大小写的。

Type:网络类型。下拉菜单里通常有Ground、Power、Signal、Substrate几个选项。GND选Ground,VDD选Power。如果衬底单独接一个网络,比如“SUB”,那选Substrate。

Voltage:标称电压。GND填0,VDD填你的电源电压,比如1.8、3.3、5.0。这个值主要用于工具内部计算,填准确了有助于提高提取精度。

Global:是否全局网络。勾上。这个选项告诉工具:这个网络在整个设计里是全局连通的,提取时要把所有同名节点归并成一个。

除了这四列,有些版本还有Resistance和Capacitance列,用来指定全局网络的寄生电阻和电容。一般留空或者填0,表示理想网络。如果你想让工具把电源网络的电阻也提取出来,可以在这里设置,但通常没必要,因为电源网络的IR drop分析是另外的流程。

表格填完之后,大概是这个样子的:

Net NameTypeVoltageGlobal
GNDGround0Yes
VDDPower1.8Yes
AVDDPower1.8Yes
DVDDPower1.8Yes
SUBSubstrate0Yes

填完记得点Apply或者OK保存。有些版本需要你手动点一下“Update”按钮才会生效。

3.4 衬底网络的特殊处理

衬底网络是个特殊情况。在大多数CMOS工艺里,衬底就是P型硅片,接的是地。但如果你用的是SOI工艺,或者有多个阱接不同电位,衬底网络就需要单独处理。

IC617的PEX工具通常有一个Substrate Net的选项,在Extraction页面里。你需要指定衬底网络的名称,通常是“SUB”或者“BULK”。如果工艺文件里已经定义了衬底节点,这里可以留空,工具会自动识别。

我遇到过一个情况:版图里P阱和N阱分别接不同的电源,但PEX默认把所有阱都当成同一个衬底。结果提取出来的阱电容全算错了。解决办法是在Net Options里把P阱和N阱的网络分别声明为Substrate类型,并指定不同的Voltage值。这样工具就会分开处理。

提示:如果你的设计里有多个电源域,比如模拟电源AVDD和数字电源DVDD,一定要在Net Options里分别声明。不要图省事只写一个VDD,否则工具会把所有电源网络短接在一起,后仿时模拟和数字之间的隔离就没了。

4. 设置完成后的验证与后仿对接

4.1 检查提取出的网表

设置完GND和电源网络之后,重新跑一次PEX。提取完成后,打开生成的网表文件(通常是.sp或.scs格式),搜一下GND和VDD。

正确的网表里,GND应该只出现一次,作为全局节点。所有需要接地的地方都直接连到“GND”这个节点上。VDD同理。如果你看到GND_1、GND_2、GND_3这样的节点,说明全局归并没有生效,回去检查Net Options里的Global选项有没有勾上。

还有一个检查点:网表开头的.subckt定义里,GND和VDD应该出现在端口列表里,或者作为全局节点声明。如果它们没出现,说明PEX工具根本没把它们当成全局网络。

我一般会用一个简单的脚本统计网表里GND和VDD出现的次数。如果GND出现的次数等于版图里地线标签的数量,那说明归并成功了。如果次数远大于标签数量,说明有重复节点。

4.2 后仿网表的端口对接

PEX生成的网表要拿去跑后仿,需要和测试平台(testbench)对接。这里有个细节:PEX网表里的GND和VDD是全局节点,测试平台里也要用同样的名字。

如果你在测试平台里用的是“gnd!”或者“0”,而PEX网表里用的是“GND”,那后仿时这两个节点对不上,电路还是不收敛。解决办法是在测试平台里把全局节点名改成和PEX网表一致,或者在PEX网表里加一行“.global GND VDD”声明。

IC617的PEX工具通常会自动在网表开头加.global声明。如果没有,你可以手动加。格式是:

.global GND VDD AVDD DVDD

这行声明告诉仿真器:这些网络在整个电路里是全局连通的,不管在哪个子电路里出现,都连到同一个节点。

4.3 实测对比:设置前后的仿真结果

我把设置前后的后仿结果整理成一个表格,方便对比。测试电路是一个两级运放,工艺是0.18um CMOS,电源电压1.8V。

指标前仿PEX未设GNDPEX设置GND
低频增益72dB66dB71.5dB
相位裕度65度41度63度
单位增益带宽120MHz95MHz118MHz
瞬态振铃无明显轻微
仿真时间基准1.8倍1.1倍
收敛性正常偶发不收敛正常

从表格里能看出来,设置GND和电源网络之后,后仿结果跟前仿的偏差从6dB缩小到0.5dB,相位裕度从41度恢复到63度。仿真时间也降下来了。这个提升幅度,对于做高性能模拟电路的人来说,是决定性的。

5. 常见问题与排查技巧实录

5.1 网表里GND节点还是很多怎么办

这是最常见的问题。设置完Net Options,重新跑PEX,打开网表一看,GND_1、GND_2还是一大堆。原因通常有三个:

第一个原因:Global选项没勾。回去检查Net Options表格里Global那一列,确认勾上了。有些版本的IC617,Global选项是单独一个复选框,不在表格里,要仔细找。

第二个原因:网络名大小写不一致。版图里用的是“GND”,Net Options里填的是“gnd”,IC617区分大小写,匹配不上。统一改成大写或小写。

第三个原因:版图里地线标签不完整。版图里某段地线没有打标签,PEX提取时那段就被当成普通网络。解决办法是在版图里补上标签,重新跑LVS和PEX。

提示:我习惯在版图里把所有GND和VDD的标签用同一种颜色高亮,跑PEX之前先目检一遍,确认没有漏标的。这个习惯帮我省了很多次重新提取的时间。

5.2 后仿不收敛的排查思路

后仿不收敛,GND设置不对是常见原因之一,但不是唯一原因。排查顺序建议这样:

  1. 先查网表里GND和VDD是不是全局节点。打开网表,搜“.global”,看GND和VDD在不在里面。
  2. 再查测试平台的全局节点名是否一致。测试平台里如果用的是“0”表示地,而网表里是“GND”,那就要改。
  3. 查有没有悬空节点。网表里如果有节点只出现一次,没有连接任何器件,那就是悬空的。悬空节点会导致矩阵奇异,仿真不收敛。
  4. 查初始条件。后仿网表里如果有电容、电感,初始条件没设好也会不收敛。可以在仿真选项里加“.ic”或者“uic”。

我遇到过一次,后仿死活不收敛,查了两天,最后发现是版图里一个衬底接触忘了打GND标签。PEX提取时那个接触变成了悬空节点,仿真器处理不了。补上标签重新提取,问题解决。

5.3 多电源域设计的注意事项

多电源域设计,比如模拟部分用AVDD、数字部分用DVDD、IO部分用VDDIO,PEX设置的时候要格外小心。

第一,每个电源域都要单独声明。在Net Options里把AVDD、DVDD、VDDIO都列出来,Type都选Power,Voltage填各自的标称值。

第二,注意电源域之间的隔离。如果版图里AVDD和DVDD之间有物理隔离(比如深N阱),PEX提取时要把这个隔离结构也提取出来。否则后仿时两个电源域会通过衬底耦合,结果不准。

第三,地网络也要分。模拟地和数字地通常是分开的,在版图里通过星型接地或者背靠背二极管连接。PEX设置时,AGND和DGND要分别声明为Ground类型,然后在测试平台里用0欧姆电阻或者电感把它们连起来。

我做过一个混合信号电路,模拟部分和数字部分共用一个衬底。PEX设置时只声明了一个GND,结果后仿时数字部分的开关噪声全耦合到模拟部分了,信噪比掉了20dB。后来把AGND和DGND分开声明,在测试平台里用1nH电感连接,信噪比恢复正常。

5.4 常见问题速查表

问题现象可能原因排查方法解决办法
网表里GND节点过多Global未勾选检查Net Options勾选Global
网表里GND节点过多网络名大小写不一致对比版图和Net Options统一大小写
后仿不收敛全局节点名不一致查网表和测试平台统一节点名
后仿不收敛悬空节点搜网表里只出现一次的节点补标签重新提取
后仿增益偏差大衬底网络未声明检查Substrate Net设置声明衬底网络
多电源域耦合电源域未分开声明检查Net Options分别声明各电源域
仿真时间过长悬空节点过多统计网表节点数归并全局网络

6. 一些实操心得与参数建议

6.1 提取模式的选择

PEX提取模式通常有三种:RC提取、C提取、R提取。做后仿一般用RC提取,精度最高。但如果你的电路对电阻不敏感,比如纯数字电路,用C提取就够了,速度快很多。

IC617里,提取模式在Extraction页面选。我一般先用C提取跑一遍,看看波形趋势对不对。趋势对了,再换RC提取跑精细仿真。这样能省不少时间。

提示:RC提取出来的网表节点数可能是C提取的3到5倍。如果你的电路规模很大,RC提取后仿可能要跑几个小时。建议先用小规模测试电路验证流程,再上大规模电路。

6.2 频率相关的参数设置

PEX提取的时候,有一个Frequency参数,用来指定提取寄生参数时的参考频率。这个参数影响电容和电阻的计算模型。

对于低频电路,比如音频放大器,Frequency设1MHz就够了。对于射频电路,要设到GHz级别。设错了,提取出来的RC值会有偏差。

我一般设成电路工作频率的3到5倍。比如电路工作在100MHz,Frequency设500MHz。这样提取出来的寄生参数在工作频率附近比较准。

6.3 网表格式的选择

PEX输出的网表格式有SPICE、SPECTRE、DSPF、SPEF等。后仿用SPECTRE格式比较多,因为Cadence自家的仿真器对SPECTRE格式支持最好。

如果你用的是其他仿真器,比如HSPICE,那就选SPICE格式。DSPF和SPEF是标准格式,跨工具兼容性好,但有些仿真器不支持。

我一般输出两种格式:SPECTRE用于Cadence后仿,SPEF用于存档和跨工具验证。这样万一换仿真器,不用重新提取。

6.4 提取精度的权衡

PEX提取精度和提取时间是一对矛盾。精度越高,提取越慢,网表越大,后仿越慢。

IC617里,提取精度通常用Accuracy或者Detail级别来控制。有Low、Medium、High、Ultra几档。我一般用Medium跑第一轮,看结果趋势。如果趋势不对,再升到High或Ultra。

对于关键模块,比如锁相环的VCO、ADC的采样保持电路,我会直接用High或Ultra。这些模块对寄生参数敏感,精度不够后仿结果没意义。

提示:Ultra精度提取出来的网表可能比Medium大10倍以上。后仿之前先看看网表大小,如果超过几百MB,考虑用分布式仿真或者简化测试平台。

6.5 版本兼容性提醒

IC617是Cadence比较老的一个版本,但用的人还很多。如果你用的是IC6.1.8或者ICADVM,PEX的界面和参数位置可能不一样。

IC6.1.8的PEX Setup里,Global Net设置移到了Netlist → Global Nets页面。ICADVM里,PEX集成到了Virtuoso ADE里,设置入口在ADE的Setup菜单下。

不管哪个版本,核心逻辑是一样的:找到Global Net设置,声明GND和电源网络,勾选Global,填对Voltage。界面变了,思路不变。

我建议你在自己的版本里先找一遍,找不到就搜官方文档的“global net”关键词。Cadence的文档写得还算清楚,搜到了照着做就行。

6.6 一个容易忽略的细节:电源网络的电阻

前面说了,GND和电源网络通常按理想网络处理,不提取电阻。但在先进工艺里,电源网络的IR drop可能很大,影响电路性能。

如果你要做IR drop分析,需要在PEX设置里把电源网络的电阻提取打开。IC617里,在Net Options表格的Resistance列填一个值,或者勾选“Extract Resistance”选项。

打开之后,PEX会把电源网络的金属电阻也提取出来,后仿时能看到电源电压在芯片各处的实际值。这个对低功耗设计特别重要。

我做过一个低功耗MCU,电源网络用理想网络后仿,功耗比预期低了15%。后来打开电源电阻提取,发现芯片边缘的电源电压只有1.62V,比标称的1.8V低了10%。这个偏差直接影响了功耗和时序。

提示:电源电阻提取会显著增加网表规模和仿真时间。建议只在最终签核阶段打开,前期验证用理想网络就行。

7. 从PEX设置延伸出去的几个思考

7.1 PEX设置和LVS的关系

PEX的全局网络设置,本质上是在弥补LVS的一个局限。LVS检查的是版图和原理图的连接关系是否一致,但它不关心网络在物理上的分布。版图里地线是网格状的,LVS只检查每个器件的地端是否连到了GND网络,不检查这些GND网络之间是否物理连通。

PEX的全局网络设置,就是在告诉工具:这些物理上分开的GND网络,在电气上是一个节点。这个信息LVS不提供,只能靠PEX设置来补。

所以,如果你LVS过了但PEX后仿结果不对,先别怀疑LVS,查查PEX的全局网络设置。

7.2 和EM/IR分析的衔接

PEX提取出来的带寄生参数的网表,除了用于后仿,还可以用于EM(Electromigration)和IR drop分析。这两个分析都需要知道电源网络的电阻和电流分布。

如果你在PEX里把电源网络的电阻提取打开了,那EM/IR分析可以直接用这个网表。如果没打开,EM/IR工具会自己重新提取,或者用理想网络近似,精度会差一些。

我一般会在PEX设置里把电源网络的电阻提取打开,这样一份网表可以同时用于后仿和EM/IR分析,省得重复提取。

7.3 对后仿真的影响总结

回到最开始的问题:PEX只提RC够不够?答案是不够。GND和电源网络的设置,决定了提取出来的网表能不能正确反映电路的电气连接关系。RC数值再准,连接关系错了,后仿结果就是错的。

我在IC617上实测的结论是:设置GND和电源网络之后,后仿结果和前仿的偏差从6dB缩小到0.5dB,相位裕度从41度恢复到63度,仿真时间从1.8倍降到1.1倍。这个提升幅度,对于做高性能电路的人来说,是必须的。

如果你现在跑PEX后仿,结果总是不对,先别急着调RC提取参数。打开Net Options,把GND和电源网络声明一下,勾上Global,重新提取一遍。很多时候,问题就解决了。

最后分享一个小技巧:我习惯在PEX设置完之后,把Net Options的配置保存成一个模板文件。下次跑新项目,直接加载模板,改改网络名就行,不用从头填。IC617里,Net Options页面通常有Save和Load按钮,保存成.xml或.txt格式。这个习惯帮我省了很多重复劳动。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询