当前位置: 首页 > 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.dtcms.com/a/287943.html

相关文章:

  • uniapp中腾讯地图SDK-安装及配置(自动定位回显城市)
  • 探索量子计算与法律理论的交叉领域
  • 智能体之变:深度解析OpenAI ChatGPT Agent如何重塑人机协作的未来
  • 文献阅读:全球农田的植被总初级生产力(GPP)、蒸散发(ET)和水分利用率(WUE)的变化研究
  • 周末总结(2024/07/19)
  • 若依部署项目到服务器
  • 数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
  • Springboot项目的搭建方式5种
  • 深入解析 Amazon Q:AWS 推出的企业级生成式 AI 助手
  • 默认显示两行文字,多余的文字省略掉,变成省略号
  • Vue状态管理:Vuex模块设计方案
  • SpringBoot服装推荐系统实战
  • C++string类(2)
  • fclose 函数的概念和使用案例
  • GEE:批量处理和下载SoilGrids 250m v2.0
  • 区块链可投会议CCF A--ICDE 2026 截止10.27 附录用率
  • 【科研绘图系列】R语言绘制显著性标记的热图
  • 数学建模:运筹优化类问题
  • 3.5软件开发活动[2-系统设计]面向对象设计-UML统一开发过程
  • 短视频矩阵的未来前景:机遇无限,挑战并存
  • Tomcat 生产 40 条军规:容量规划、调优、故障演练与安全加固
  • Linux Ubuntu安装教程|附安装文件➕安装教程
  • 尚庭公寓-----day2 业务功能实现
  • PHP 就业核心技能速查手册
  • Delphi XE 自带了 Base64编码解码
  • 前端知识回顾-登录界面
  • 从“数字土著”到“数据公民”:K-12数据伦理课程的设计、实施与成效追踪研究
  • 开启你的专属智能时代:枫清科技个人智能体限时体验计划上线!
  • 简单易懂,段页式管理
  • 【leetcode100】寻找重复数