手把手教你debug解决物理验证Calibre LVS错误

上周咱们社区IC后端训练营学员遇到下面这个LVS错误,自己尝试分析无法解决后,找小编申请远程协助解决。

手把手教你数字IC后端设计实现PR Innovus在线LVS检查方法
Calibre LVS错误解析
【思考题】如果在跑Calibre LVS过程中报如下图所示的ERROR,请问应该如何解决?这类错误通常是什么问题导致的呢?

在这里插入图片描述

从这位学员截图看,我第一反应是这个问题有两大原因。

1)数据版本不匹配(写gds和写netlist的数据用的不同一个database)
2)写netlist时可能把有device的cell 强制no output

今天我们就登录服务器来还原整个debug分析的思路和过程,希望对大家以后debug分析LVS有所帮助。

首先,分析LVS结果我们需要查看下LVS的gds抽取报告。

Calibre LVS gds抽取报告

从这个报告我们看出,里面的report很干净,没有任何的警告和错误。所以工具在做gds抽取时并没有什么问题。

接着,我们打开lvs的结果报告,快速定位到"INCORRECT"位置,这里的错误是报Layout中多了一个ndio,因为source中提示missing instance,即我们用来做LVS用的spice netlist中并没有这颗cell。

在这里插入图片描述

为了具体看下这个错误的详细信息,我们通过calibre打开设计merge后的gds,并load出LVS的svdb,结果如下图所示。这个通过GUI图形界面方式看到的错误信息和LVS report中看到的信息是一致的。只不过这里我们可以通过双击错误的地方快速定位到layout中具体的位置。

在这里插入图片描述

所以,我们双击这个错误的地方,自动就会加载出Layout netlist和Source netlist的电路原理图,如下图所示。

在这里插入图片描述

同样在calibre的GDS界面也会高亮出具体violation的位置。通过这个我们可以看到具体violation的具体坐标。
在这里插入图片描述

如果你不太习惯在calibre中看,我们可以拿着这个坐标去innovus中去寻找这颗cell到底是什么。其中从上面我们已经知道这颗cell其实是二极管ANTENNA cell。
在这里插入图片描述

这说明layout中的确有这颗cell,而且它的名字叫DIODE_3。那我们这时候就应该去看下LVS用的spice netlist。经过搜索我们发现这个spice netlist中的确没有叫DIODE_3的cell,只找到DIODE_1和DIODE_2。

在这里插入图片描述

所以,为了让这个LVS比过,小编准备给这个netlist添加这样一个cell。但这个ANTENNA CELL有个I pin是需要连线,所以我还得去layout中去看到底这个I Pin是要连接到哪一条net上去。

在这里插入图片描述

经过这么一分析,它应该连接到FE_PHN42553_scu_dr_data_i_46这条net。
在这里插入图片描述

所以改后的spice netlist如下图右侧所示。左侧也一并贴出来,目的是希望大家能够把pr netlist和spice netlist做一个对比,这样才能知道他们的对应转换关系。

在这里插入图片描述

经过这么修改后,我们可以重新跑下LVS,结果如下所示。

在这里插入图片描述

至此这个LVS问题就解决了。但是小编认为这个spice netlist不会凭空少掉一颗diode cell。所以初步怀疑是学员误删了。为了证实这个猜想,我们来看看PR netlist输出的netlist是否有DIODE_3这颗cell。经查果然pr netlist中就是有这颗cell。

那会不会是v2lvs转换出的问题呢?那我们重新来做下v2lvs并查看是否会丢失这颗cell。从最新的结果看也并没有少这样的diode。所以v2lvs转换过程也没有问题。

所以,在我们实际项目中经常会因为工程师的误操作或者不良的工作习惯而出现一些比较奇怪的问题。但是只要我们掌握了正常分析问题的思路,我们还是可以把很快定位到有问题的点并高效解决这类问题。

### Cadence LVS 中 Missing Port 报错解决方案 在集成电路设计中,Cadence LVS 的 `missing port` 错误通常是由于端口定义不一致或层次结构问题引起的。以下是针对该问题的详细分析和解决方法: #### 1. **理解Missing Port错误** - `Missing port` 错误表示GDSII文件中的某些端口未正确映射到SPICE网表中的相应节点[^1]。 - 常见原因包括:TEXT层设置错误、金属层混淆以及端口名称拼写差异。 #### 2. **检查Text Layer配置** - 验证是否使用了正确的TEXT层来标注端口。如果应该使用TEXT层却意外选择了DRAWING层,则可能导致此错误。 - 使用命令行工具或者图形界面重新指定正确的TEXT层,并确保其与设计规则相符。 #### 3. **验证Metal Layer一致性** - 如果涉及多层金属互连(如AL_RDL),需仔细核对实际使用的金属层数字编号是否匹配预期值。例如,在1p6m工艺下,若应选用AL_RDL而实际上用了ME7,则会引发连接失败。 ```bash # 示例:通过Calibre或其他DRC/LVS工具运行特定脚本检测metal layer mismatch calibre -lvs config_file.lvs design.gds spice_netlist.spice results.out ``` #### 4. **排查Decap电容相关问题** - 对于带有Decoupling Capacitor (Decap) 的电路,即使视觉上看起来正常,仍可能存在VDD/VSS网络缺失的情况[^2]。 - 利用寄生提取功能进一步定位潜在断开点;也可以尝试手动添加显式的电源轨声明至版图中受影响区域附近。 #### 5. **利用自动化调试手段** - 启动高级别的诊断模式以获取更详细的日志信息。许多EDA平台提供了专门用于追踪此类复杂关联关系的功能模块[^3]。 ```tcl # Tcl Script Example for Enhanced Debugging in Virtuoso set db [ord::get_db] foreach inst [$db getInsts] { puts "Instance Name: [$inst getName]" foreach pin [$inst getPins] { if {[$pin isPort]} { puts "\tPin Type: Port, Net Connected: [$pin getNetName]" } else { puts "\tPin Type: Internal" } } } ``` #### 6. **总结建议** 为了有效预防并快速修复类似的LVS issues,请始终遵循良好的设计实践,定期执行中间阶段的结果审查,并保持最新版本软件补丁的应用状态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值