当前位置: 首页 > web >正文

千线万网,电路之行——LVS检查的内核逻辑

数字后端的物理验证中,一项重要的任务当属LVS检查。 先来一张帅照镇贴(_)
在这里插入图片描述

定义

LVS(Layout Versus Schematic)检查:顾名思义,工具进行的是物理版图(Layout)和电路原理图(Schematic)的一致性比较,用于确保芯片后端实现的版图就是真正想要制造的逻辑电路

它包含3个重要的步骤:

  1. v2lvs:使用v2lvs工具,==将PR后的Verilog网表转化为Calibre LVS用到的SPICE网表==,在转化过程中需要include所有用到的std cell和macro的spi网表(类比merge gds)。
    在这里插入图片描述
  2. Extraction:Calibre工具==“Extract”由物理版图(Layout)所确定的SPICE网表==
  3. Compare:将Layout所确定的SPICE网表与设计Verilog网表转化后的SPICE网表进行对比
    在这个阶段,工具会将“提取网表”和“原理图网表”进行逐一比对,比对内容包括:
    1.器件数量是否一致(如多少个NMOS、PMOS等);
    2.器件类型是否一致;
    3.网络连线是否一致;
    4.器件连接方式、端口命名、子模块调用是否匹配;
    5.等效性文件中定义的Cell匹配是否正确。

从上面的分析可知,LVS检查本质上还是两份SPICE网表的对比——一份从版图提取,一份来自原理图设计——进而确保器件类型、数量、尺寸以及电气连接关系完全一致。

GDS port信息

都知道,在跑lvs前,需要将导出的gds的pg打上text信息,才能完成lvs的比对,这是为什么呢?

其实LVS在进行物理版图(Layout/GDS)和v2lvs Netlist对比时,都需要先将两个目标黑盒(GDS/netlist)的port先进行比对。对于信号port,一个信号port通常只会有一个terminal,多terminal通常是被禁止的,因此工具(如innovus/icc)在导出GDS时会自带信号port的text信息,以便于lvs识别。

但是对于PG的port会有一些特殊,因为PG通常是multi-terminal的,这可以有效提高供电质量。因此工具无法识别PG的terminal并带上text信息,所以用户需要手动定义PG text的位置,只能对真正会有PG输入的点进行定义。比如对于一个block的设计,有M4、M5两层PG走线,我们在创建PG text的时候只能创建M5的PG text。

流程

LVS的流程如下,工具将 design的layout抽取出其对应的Layout netlist,然后和v2lvs后 source 的netlist 进行比对。进而根据LVS规则,生成对应的报告。
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8a1931d5f2d14f79b6f7d06a2026f531.png

常见错误

  • Spice netlist file error
    这种情况 LVS 报告提示 “NOT COMPARED”。通过查看 LVS 报告 lvs.rep 得知,因为 source 的 spice 网表存在错误,工具没有读取成功(比如某个 ip 的. spi 文件不存在或者路径不正确)。
  • LVS Port name 不一致
    这种情况可能是由于 TEXT 打的方式不正确,比如少打 TEXT,或者 TEXT name 不对。
  • LVS OPEN
    设计中存在线路open的情况。表现为LAYOUT 上的两条 NET,对应到SOURCE 只有一条 NET。
  • LVS SHORT
    layout 上存在 short,表现为 LAYOUT 上的一条 NET,对应到 SOURCE 则有两条 NET。
  • Device type mismatch
    device 在 LAYOUT 和 SOURCE 上 Device type 不匹配,比如一个是NMOS,一个是PMOS。
  • LVS stamping conflict in SCONECT- multiple source nets stamp one target net
    当不同的net对应的net shape连接到同一条net上,此时LVS检查就会报Stamping Conflict。而且这个连接关系是通过LVS Deck文件中SCONNECT定义的。通常是由于PG Floating导致的,检查是否VDD 和 VSS是否存在open的情况。

如何快速通过LVS?

在解决任何问题时,都要先把能解决的问题先解了,首先就是先把能解决的问题先解了,保证问题的干净度,避免问题之间的互相干扰。

在解决lvs问题时,一定要现在Innovus中坐online的LVS检查,只要这个online LVS pass了,那么Calibre LVS基本上就没有什么问题了。

如何在innovus 中做online LVS?

1、检查PG的connectivity
verifyConnectivity -type special-noAntenna-noWeakConnect -noUnroutedNet-error 1000-warning 50 -net VDD/VSS/VDD_LOCAL
检查PG的连接性,确保没有open的情况。

2、检查PG Short
verify_PG_short -no_routing_blkg
确保PG 没有Short的情况。如果PG short会导致电源、地认错,导致一系列问题。所以必须优先解决。

3、检查信号的connectivity
verifyConnectivity -type all -error 1000 -warning 50
要确保所有cell的信号线没有open的情况

4、检查信号的Short
verify_drc
通过verify_drc,可以检查出信号是否存在short
在这里插入图片描述
以上Online LVS全部检查通过之后,可以大幅确保LVS能够pass!!!

代码与文字齐飞,逻辑共创意一色!若我的文章让你会心一笑,点个赞我们一起笑谈"IC人生"!qxOWwKbl1tTzkyu.png

http://www.xdnf.cn/news/15870.html

相关文章:

  • Python day18
  • 统计EfficientNet-B7的参数个数。
  • 华为擎云L420安装LocalSend
  • 单元测试学习+AI辅助单测
  • 【图像处理基石】什么是小波变换?
  • 美国VPS服务器Linux内核参数调优的实践与验证
  • iOS 通知机制及底层原理
  • 突破 MySQL 性能瓶颈:死锁分析 + 慢查询诊断 + 海量数据比对实战
  • 【设计模式C#】状态模式(用于解决解耦多种状态之间的交互)
  • 中间件安全攻防全解:从Tomcat到Weblogic反序列化漏洞介绍
  • 使用DataGrip连接安装在Linux上的Redis
  • FreeRTOS—列表和列表项
  • 相机参数的格式与作用
  • Vue3 学习教程,从入门到精通,Vue 3 声明式渲染语法指南(10)
  • 快速上手AI整合包!GPT-SoVITS-v2打包教程,解锁AIStarter应用市场潜力
  • DC-DC降压转换5.5V/3A高效率低静态同步降压转换具有自适应关断功能
  • Bicep入门篇
  • 小谈相机的学习过程
  • Linux_基础指令(一)
  • windows docker-02-docker 最常用的命令汇总
  • JMeter 元件使用详解
  • 统计学习方法的三要素
  • 深入了解 find_element 方法:Web 自动化定位元素的核心​
  • Codeforces Round 1037 (Div. 3)(补题)
  • 前端面试专栏-工程化:27.工程化实践(CI/CD、代码规范)
  • 六种经典排序算法:从原理到 Java 实现
  • Linux系统之kbdrate 命令详解
  • Linux:多线程---深入生产消费模型环形队列生产消费模型
  • STM32
  • 泛型机制详解