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

千线万网,电路之行——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.lryc.cn/news/593550.html

相关文章:

  • k8s 基本架构
  • K8s与Helm实战:从入门到精通
  • 第五章 用Java实现JVM之运行时数据区
  • Linux内核设计与实现 - 第5章 系统调用
  • 堆堆堆,咕咕咕
  • Java行为型模式---中介者模式
  • 【办公类-107-02】20250719视频MP4转gif(削减MB)
  • Triton的核心概念与简单入门
  • 突破研究边界!探索OpenAI o3与o4-mini模型的无限可能
  • Attu-Milvus向量数据库可视化工具
  • 《Linux系统配置实战:NTP时间同步与SSH免密登录全流程指南》​​
  • Linux练习二
  • 低代码平台ToolJet实战总结
  • 网络大提速,RDMA,IB,iWrap
  • windows docker-03-如何一步步学习 docker
  • 游戏开发日志
  • SurfaceView、TextureView、SurfaceTexture 和 GLSurfaceView
  • eNSP综合实验(DNCP、NAT、TELET、HTTP、DNS)
  • 西门子 S7-1500 PLC 电源选型指南:系统电源与负载电源的核心区别
  • 【Linux服务器】-zabbix通过proxy进行分级监控
  • 【初识数据结构】CS61B中的基本图算法:DFS, BFS, Dijkstra, A* 算法及其来历用法
  • JavaSE-接口
  • 枚举类高级用法
  • 嵌入式学习-PyTorch(8)-day24
  • Ubuntu20.04 samba配置
  • 读书笔记:最好使用C++转型操作符
  • UE5制作小地图
  • CSS篇——第二章 六十五项关键技能(下篇)
  • Django3 - Web前端开发基础 HTML、CSS和JavaScript
  • 【C语言进阶】题目练习(3)