物理验证LVS对bulk(体)的理解和处理技巧

news2024/11/24 16:59:39

对于物理验证中的LVS,需要对各种物理器件进行SpiceVsGDS的比对,基于现在流行的std-cell的库的设计方法,LVS需要对CMOS器件多相应的处理,这里会涉及到一些具体的物理库的知识和小的技巧,这里结合具体的物理设计和CDL形态,一起探讨一下std-cell的在LVS的特殊处理,ICer GO!

标准单元库一瞥

常规的标准单元库(std-cell)是标准的CMOS设计,由于采用P衬底的设计出来的CMOS器件的速度优势,目前业界流行的做法就是采用P型衬底(P substrate)来实现的

  • NMOS 直接坐在P-sub上
  • PMOS 则做在P-sub上的NWELL
    譬如下面的一个简单的工艺刨面图
    在这里插入图片描述
    以上边的NMOS为例,通常有更为常见的是下面的一个示意图
    在这里插入图片描述
    比较上述两个图,可以看到,每一个NMOS都会有一个bulk(体)的连接(有些场合也被称作body)
    在这里插入图片描述

在NMOS里边,这个bulk的作用就是将当前NMOS的P-sub做一个连接,通常P-sub是连接到VSS上的。
如果芯片里边有非常多的std-cell连续分布(这个也是常规做法),那么在版图里边就会有类似下列的一个刨面图:
在这里插入图片描述
由于所有的NMOS都是做在一片完整的P-sub上,自然NMOS的BULK需要连接到同样的电位VSS上,这里就是模拟设计里边常说的TAP 结构了。
可以看到,这个TAP结构完全是一个通用结构,为了节省std-cell的面积,目前业界比较流行的做法就是设计tapless(免TAP)的std-cell,然后使用公用的TAP cell将bulk连接到VSS上,这样对于节省std-cell的面积很有好处,但是考虑到TAP的电位对于std-cell的bulk的影响,工艺会给出具体的TAP的间距(目前流行的做法是checkerBoard/stagger的做法),APR工具为也提供了具体的命令和参数,支持std-cell的这种设计结构。
通过学习std-cell的形态,可以明确下列要点
**- std-cell都是tapless的结构

  • bulk需要使用TAP cell 分别将同列的std-cell的P-sub和NWELL分别连接到VSS和VDD上**

LVS的挑战

由于bulk在std-cell上PG和信号连接上是没有明显贡献的,对于使用none-bias的流程的std-cell,通常是无法在std-cell看到这个bulk的管脚的,譬如下面LEF的示例:
在这里插入图片描述
可以看到,这里有PG管脚的声明,但是没有声明bulk的管脚。
但是对于LVS而言,CMOS是一个四端器件,在验证栅源漏的同时,也需要完成对bulk的连接验证,这个也是符合APR的TAP的布局连接的。所以,这里需要打开CDL来一看究竟,见下图

在这里插入图片描述

可以看到,相较LEF而言,最后做LVS的CDL里边,会有bulk的连接描述。对于none-bias的std-cell而言,bulk的物理连接可以简单的连接到PG上,基本如下图
在这里插入图片描述
通常的LVS里边的source netlist是来自于APR工具,APR对于PG netlist的抽取,又是依赖于UPF和LEF的,所以综上,用户会遇到一种情形,LVS PG netlist对std-cell的描述会和最终的std-cell CDL出现分歧:source nelist的std-cell会缺失bulk连接声明,
在这里插入图片描述
很明显,同样的cell在LVS的source netlist缺失了bulk的连接,这样的LVS的比对,会发生大面积的std-cell port mismatch error,是无法进行的

v2lvs的高阶用法

但是这个问题看起来有一些奇怪,既然LEF里边没有声明bulk,同时在none-bias的flow下,bulk也无法被引用,这样的LVS是不是就走到死胡同了吗?当然不是,这里还是要回归问题本真。
std-cell的bulk仅仅是需要一个连接声明,具体说来就是两类

  • P-sub的bulk连接到VSS上
  • NWell的bulk连接到VDD上
    这个需要在LVS的source netlist处理一下就好(当然APR是没有这个魔法的)。
    LVS的source netlist 通常是从APR的PG netlist得到的,但是由于LVS是基于spiec比对的,所以一个简单示意如下:
    在这里插入图片描述
    通常而言v2lvs就是简单的把verilog 转换成spice格式,但是bulk的处理需要一些高级的用法,尤其是当设计中使用了多个power domain的时候,譬如下面这个示例:
    在这里插入图片描述
    所以,对于处于不同层次/block的std-cell的PG连接就会不太一样,类似的bulk连接也会不一样,具体描述如下表
blockPDpowergroundNWellP-sub
block1PD1VDD1VSSVDD1VSS
block2PD2VDD2VSSVDD2VSS
这种情形需要使用v2lvs的tcl模式进行细化处理,才能很好的将处于不同block的std-cell的 bulk连接处理完美

在这里插入图片描述

上述命令可以在基于当前std-cell 的PG连接关系,衍生出对应的bulk的连接,会变成下面的情形:
在这里插入图片描述
这样处理以后,LVS的std-cell的port mismatch也就完美解决了,
学好v2lvs,再也不用perl去patch source netlist了~~~~

【敲黑板划重点】

在这里插入图片描述
v2lvs插上TCL的翅膀,在复杂的netlist也可以处理的游刃有余,再也不用写一堆perl脚本去patch netlist。流程看起来也会更正规也提高了流畅性。

参考资料

Mentor Calibre® Verification User’s Manual
Synopsys Synopsys® Multivoltage Flow User Guide

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全战略:如何应对不断变化的威胁环境?

网络安全一直是大家所关注的重点。在如今的数字化时代,网络安全问题日益严峻,网络攻击者使用更加复杂和高级的攻击方式,企图从各种角度入侵和危害我们的计算机网络。因此,我们必须制定一套完善的网络安全战略,以便更好…

LeetCode 牛客单链表OJ题目分享

目录 链表的回文结构相交链表环形链表I环形链表II 链表的回文结构 链接: link 题目描述: 题目思路: 本题思路是找到每一条链表的中间节点,之后逆置中间节点之后的链表,定义两个指针,分别指向逆置后链表的头部的链表的…

8年资深测试总结,性能测试基础知识(大全)你的进阶之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试&#xf…

力扣sql中等篇练习(十七)

力扣sql中等篇练习(十七) 1 计算布尔表达式的值 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 使用SELECT子句中的子查询查询到对应的值 SELECT t1.left_operand,t1.operator,t1.right_operand,cas…

Obsidian templater日记模板添加一个随机问题

Obsidian templater日记模板添加一个随机问题 简介 每天日记里写同样的东西,感觉有点无聊,想问自己一些问题,每天不同。 查到有插件random structural diary,我想要的功能就是这样,但是没懂这个插件怎么放进templat…

【Android入门到项目实战-- 9.3】—— 加速度传感器的详细使用教程

基础知识 加速度传感器可以返回x、y、z三轴的加速度数值,该数值受地心引力的影响。 将手机平放桌面上,x、y、z轴默认为9.81;手机向下z轴为-9.81。 将手机向左倾斜,x轴为正,向右倾斜,x为负; 将手…

Windows11安装hadoop-3.3.0

一、安装Java 1. 下载Java 进入下载页面Java Archive Downloads - Java SE 8 Java SE Development Kit 8u191中 选择适合操作系统的下载文件 在安装好的路径下,将Java目录复制到C:\根目录下,形成C:\Java\jdk1.8.0_191目录结构 2. 设置环境变量 二、…

Docker虚拟化概念

Docker虚拟化概念 1、虚拟化技术的概念 虚拟化技术主要是将物理资源转变为逻辑上可以管理的资源;用以打破物理资源结构之间的壁垒;让计算的原件运行在虚拟的基础之上;而不是直接运行在硬件设备资源上; 说白了就是硬件资源转变成…

大数据开会记录【NiFi数据集成、AllData数据中台管理系统、RuoYi】

今天上午和下午开了个小会,上午说了一下Nifi,下午具体说了一下nifi和ruoyi。 目录 上午 下午 上午 三个人开会。 上次说的挖掘平台,您这边是否有技术人员对nifi比较熟悉,并且能够将相关功能集成到数据中台系统中。 现在结构化的…

不收费的电脑数据恢复软件EasyRecovery16

EasyRecovery是一款操作安全、恢复性比较高的数据恢复工具,小伙伴们可以使用EasyRecovery恢复各种各样被删除的文件、视频、图片等。EasyRecovery还可以支持恢复被格式化的媒体文件,只是使用EasyRecovery恢复时时间较久。如果小伙伴们有误删除的文件需要…

【Qt 从入门到入土】上篇

【Qt 从入门到入土】下篇 一个非常好的学习 Qt 的视频 本文目录 1. Qt 概述1.1 什么是 Qt1.2 Qt 的发展史1.3 支持的平台1.4 Qt 的版本1.5 Qt 的优点1.6 成功案例 2. 创建 Qt 项目2.1 使用向导创建2.2 手动创建2.3 .pro文件2.4 一个最简单的 Qt 应用程序2.5 Qt 命名规范和常用…

【Java入门合集】第三章面向对象编程(下)

【Java入门合集】第三章面向对象编程(下) 博主:命运之光 专栏:JAVA入门 学习目标 理解面向对象三大主要特征; 掌握类与对象的区别与使用; 掌握类中构造方法以及构造方法重载的概念及使用; 掌握包…

已做过算法题总结

217、存在重复元素(easy) 输入:nums [1,2,3,1] 输出:true 输入:nums [1,2,3,4] 输出:false 输入:nums [1,1,1,3,3,4,3,2,4,2] 输出:true 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &…

【2106. 摘水果】

来源:力扣(LeetCode) 描述: 在一个无限的 x 坐标轴上,有许多水果分布在其中某些位置。给你一个二维整数数组 fruits ,其中 fruits[i] [positioni, amounti] 表示共有 amounti 个水果放置在 positioni 上…

Android平台播放透明视频

Android平台播放透明视频 思路 设计一种特殊的视频,它的一半内容存储alpha信息,另一半内容存储rgb信息,接着通过OpenGL获取每个像素点的alpha值和rgb值进行混合,最后出来的画面就是带有透明效果的视频了。 可以上下的分&#xf…

【疯狂造轮子-iOS】JSON转Model系列之二

1. 前言 上一篇《【疯狂造轮子-iOS】JSON转Model系列之一》实现了一个简陋的JSON转Model的库,不过还存在很多问题。下面我会尝试一个个去解决。 2. 存在问题及解决思路 2.1 没有考虑JSON数据并不一定是NSDictionary类型 有时候JSON并不一定是NSDictionary类型&…

【医学影像数据处理】2D/3D patch的crop和merge操作汇总

在做3D分割任务中,多数的方法多采用整体缩放,或裁剪成一个个小的patch操作,这样做的一个主要原因是内存问题。 相较于整体缩放,采用裁剪成patch的方法,对于小目标会更加的鲁棒,这也是大多数3D分割任务中常…

Leetcode448. 找到所有数组中消失的数字

Every day a leetcode 题目来源:448. 找到所有数组中消失的数字 解法1:STL set set 是一个集合类型的容器,里面的元素具有唯一性,并且所有元素都会根据元素的键值自动被排序,以红黑树为底层数据结构。 我们使用集合…

git上传大大大文件项目好折磨人

本来想把unity项目的源码上传上gitee啊,但是那个项目有1个多G,还是个半成品,要是写完,都不知道行不行 正常的上传 所用到的命令: 1、 git init 初始化,创建本地仓库 2、 git add . 添加到本地仓库 3、 git…

【C++】打开C++大门,踏入C++世界

文章目录 ☑️前言一. 浅看【C】关键字二. 命名空间1. 命名空间的定义👌2. 命名空间的使用👌 三. 【C】输入输出(IO)四. 缺省参数1. 缺省参数的概念🏆2. 缺省参数的分类🏆 五. 函数重载1. 函数重载的概念✌️2. 【C】支持函数重载…