Virtuoso的Layout操作与Calibre DRC&LVS
Virtuoso的Layout操作与Calibre DRC&LVS
很久之前写过一篇关于Virtuoso版图的基本操作以及怎么运行Calibre的DRC和LVS,但没有记录Virtuoso Layout的快捷键操作,也没有介绍怎么进行DRC和LVS的debug。在这两年的学习工作中,积累了一些经验,结合在b站上看到的一个很好的视频,做一些记录。
首先是Layout的基本流程,完成原理图是第一步。在进入版图时,使用Layout XL或者GXL是更好的选择,Layout L没有将原理图链接到版图绘制界面,提供很多高亮的辅助功能,比如instance和net的对应,还可以看到每个图形对应的Net的小图标(黑底白字),使用XL或者GXL可以更高质量的完成版图。在原理图界面Launch->Layout XL/Layout GXL即可。
快捷键大全还可以看这篇文章。
在Layout界面中,Option->Display Options中(快捷键按E),右上角Gird Controls中可以选择的网格间距,将X Snap Spacing和Y Snap Spacing设置到0.005是常见的操作(也看具体的PDK,例如TSMC28的DRC检查时,会查图形是否在0.005的Grid上,如果出现了偏离0.005倍数,比如0.006这种坐标会报off-grid的DRC错误)。
直接用Connectivity->Generate->Generate Layout中勾选Instance和I/O Pins,I/O Pins标签页中可以选择将Pins要放置的Layer(根据版图出Pin的需求选择),勾选Create Labels As Label,选择Label所生成的层次,一般会选择Same As Pin(与LVS相关,因为Calibre LVS并不看Virtuoso Layout的Pin,只会看Label,根据Label Attach到的图形将其对应识别出Pin)在Schematic中选中的线和Instance会在Layout中跟随高亮。
通过Shift+f快捷键将Layout从Instance View(红框状态)变成显示版图细节的状态,用Ctrl+f快捷键则可以恢复红框状态(可以减少版图渲染显示的时间,在看大版图要进行拖动时很常用),通过Connectivity->Incomplete Nets->Show All...高亮出所有要连接的线,重复这个操作可以关闭。通过Connectivity->Define Device Correspondance查看版图和原理图的对应关系,有些情况下版图没有和原理图关联好的情况时,可以在这里重新Bind。选中窗口左右的两个对象然后点击左下角Bind按钮就能进行Bind。
按左键拖动框选多个对象,按右键拖动框选是自适应缩放到框选范围,单独在某个对象上右键会跳出一些复选框,例如刚才的Bind的操作也可以在某个版图中的Instance上右键后来操作。滚轮本身是放大和缩小,按住Shift或Ctrl再滚轮分别是水平和垂直滚动。按住Shift单击左键可以多选目标,按住Ctrl是取消选择。如果开了大写锁定会默认成Shift+x。单独按F是自适应缩放整个版图。Shift+Z是一个步进放大,Ctrl+Z是步进缩小,按Tab后点击某个位置会将整个版图中心移动到点击处。
通过I键可以插入Instance,但是不会和原理图建立Bind关系。选中对象后按Q可以进去编辑属性界面,可以调整诸如宽长比等。Ctrl+D或者点击空白处可以取消选择。Shift+Q可以查看当前页面的属性。按U可以撤销前一步操作,按Shift+U可以还原前一步操作。按M后可以拖动Instance,按Esc可以退出拖动状态。
Layout XL下,修改了原理图属性后(例如更新了长宽比),可以用Connectivity->Update->Schematic Parameters来更新原理图参数。反之如果更新了原理图,可以用Connectivity->Update->Layout Parameters来进行更新。
按P进入连线状态,连线前在LSW中选中自己要走线的层次(一般会勾选Used,Routing来仅显示走向层次,主要是Metal层次),鼠标放置到要连接的边上时会出现一个高亮和自动连接,单击之后会开始连线,再次单击可以进行折线,在XL中Bind好的Instance之间会自动出现引导的虚线辅助连接。在连线状态时,按F3可以对当前走线进行设置,调整诸如Width等属性。如果勾选了Auto Terminate,那么在连到了目标上时走线会自动退出。如果没有,或者是想中途结束走线的话,双击也是可以的。在版图中出现Path短路时,XL会自动出现高亮的框。选中线之后按Del可以删除掉这根线。按Shift+P可以绘制多边形,按R则是绘制矩形。如果想要走斜线或者任意角度的线,可以按N,或者点左上角的小十字图标(代表只能垂直或者水平移动图形),变成斜线或者星型,对应45度和任意角度。按住某个元素按C,是复制功能,按F3可以进行一些设置操作。还有一个常见的操作是选中某个对象后按H,然后设置复制后自动偏移的坐标(如果需要移动角度,则要通过N或者图标改变可以移动的方向)然后Apply后按句号.,就可以重复操作,这个操作用来处理阶梯走线是比较好用的。按K可以创建标尺,按Shift+K取消全部标尺。
按S是拉伸操作,可以选中某个单边后进行拖动(或者线的中心)。选中某个图形后Shift+C可以进行裁剪(通过拖选框),按F3可以进入高级选项。Shift+O后选中图形可以进行旋转操作。
对其操作可以通过Align的图标操作(在功能栏右键后,Align打勾后开启)通过勾选第一个小勾可以设置对齐后的X间距,第二个小勾设置对齐后的Y间距。也可以通过两个都开来快捷的实现阶梯状图形。按A点击要对齐的两个边可以实现快速对齐。
按O来创建通孔,在界面中选择是从哪一层到哪一层的通孔。
可以通过组合图标(虚线圈包裹几个图形)来将几个图形进行组合,旁边带小叉的取消组合(也可以通过Create->Group和Edit->Group->Ungroup来操作)。
通过属性栏可以观察是全选择(F)Select模式,直接整个图形,按F4可以切换到(P)Select的部分选择模式。部分选择模式也可以用于选择多个对象,再按F4回到(F)Select。按G可以进入自动吸附模式(在连线多时可能反而麻烦)。选择某个区域后按T可以显示重叠图形中的所有层次,也可以在LSW中通过取消勾选V和S来设置是否可见和是否可选。多选几根线后按M可以将这几个线组合成一个对象。Ctrl+S后,从上到下切割,可以对切割线右侧的线进行移动,从下到上可以对左侧的线进行移动。
Connectivity->XL Probe可以去高亮各种要看的对象。按E后取消勾选Enable Dimming可以退出高亮模式。通过Connectivity->Net Tracer->Add/Remove可以把一条Net上相关连接到的图形都高亮。Connectivity->Net Tracer->Remove All退出这个模式。
按X后点击某个Instance可以进入到这个Instance的层级中修改版图,按Shift+B返回原来的层级。按Shift+X可以进入这个Instance的层次,且只显示这个Instance的版图,隐藏其他的。
按Ctrl+Shift+X可以创建总线,按F3可以对齐属性进行编辑。
此外还有一些小工具很常用,例如Tools中的Create Pins From Labels。按L可以创建Label。操作的作用可以见我这篇博客。少数情况下为了解决DRC中的Density问题还会用到Tools->Area and Density Calculator。
掌握上述内容基本上就可以搞定大部分的版图编辑需求了。有大佬有其他经验的话欢迎补充。
在进行Layout时,首先完成Placement(布置Instance的位置)再去做走线(Routing),和数字Flow有异曲同工之处的是,Placement阶段需要考虑好诸如匹配,走线是否会阻塞等一系列问题。并且走线时发现问题,需要回到Placement做一些迭代。但模拟Layout中还需要考虑匹配等更复杂的问题。这块就是版图艺术层面的经验之谈了,我也没有啥心得,就不露怯哈哈。
接下来聊聊DRC和LVS Debug的操作。Run完DRC后会弹出RVE窗口,在RVE窗口中选中报的DRC,可以看到下面文本框中出现对DRC的描述,比如属于哪个层次,间距过大过小,密度不足等。有的DRC通过文本的简单描述看不懂的情况下,可以去找PDK的Design Rule文档,会有和DRC条目匹配的详细规则描述。此外通过点击右侧的小数字,可以对应的跳到版图中出现DRC的位置,并对报DRC的图形进行高亮,这是重要的辅助分析的手段。可以多选条目,或者对整个DRC条目右键后Highlight看整体的位置。取消高亮通过RVE中Hilight->Clear Highlight来完成。
LVS的Debug更加复杂一些。首先通过Setup->LVS Option中开启Option选项,常见的包括在Supply中勾选Abort LVS on power/ground net errors然后再Power nets和Ground nets中填写自己设计的电源和地net的名字,在Gates中Gate Recognition选成Turn off然后下面勾选AB,RC,用来不识别dummy,可以见我这篇博客。一般LVS在进行Debug时,主要是查潜在的短路或者断路,电源短路这种严重问题可以在Extraction Results中直接报出来。而Comparision Results中,会比较Nets,Instances,Ports数量,Ports的问题往往是版图上少标了Label,是好查的,Nets和Instances可能会复杂一些,这是因为LVS检查中存在耦合的问题,有时Nets的匹配错误会导致Instances出现数量错误,但实际上数目是对上的,这个是Calibre LVS内部机制的问题了。一般我会从数量不匹配的Nets着手做检查,左边的是Layout抽取的Netlist,右边是Schematic抽取的Netlist,如果Layout中的Net比Schematic中的少,那应该就是短路问题,比Shematic的多就应该是断路问题,对应的可以将出错的Net在版图中高亮之后来进行检查。此外也可以通过选中Net之后在Calibre LVS中显示出来的网表和原理图来辅助分析。
偷懒+手边没有很好的case(之前流片的时候火急火燎的,也没有来得及做完善的记录),所以就只能憋出这么一篇纯文字的来,等以后有机会了可以弄个图文并茂的版本(挖坑)。
Virtuoso的Layout操作与Calibre DRC&LVS的更多相关文章
- Cadence 5141 下TSMC 05U工艺库安装
以下资料摘自:<T13RF PDK簡介>-張文旭 观念与TSMC工艺库的安装 管理者安裝TSMC 0.13 MS/RF的環境下之PDK的安裝方式相當容易,首先以root的方式進入Unix/ ...
- LVS+Heartbeat 高可用集群方案操作记录
之前分别介绍了LVS基础知识和Heartbeat基础知识, 今天这里简单说下LVS+Heartbeat实现高可用web集群方案的操作说明. Heartbeat 项目是 Linux-HA 工程的一个组成 ...
- 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建
preface 近来公司利润上升,购买了10几台服务器,趁此机会,把mysql的主从同步的架构进一步扩展,为了适应日益增长的流量.针对mysql架构的扩展,先是咨询前辈,后和同事探讨,准备采用Mysq ...
- virtuoso数据库的安装方法
数据库virtuoso有两种安装配置方式 第一种就是直接在系统中默认安装,拷贝virtuoso的安装文件,直接默认安装. 第二种是配置安装方式 参考地址:http://vos.openlinksw.c ...
- [转载]基于LVS的AAA负载均衡架构实践
摘要 本次分享将从一次实际的负载均衡改造案例出发,通过介绍项目背景.选型思路.测试方法和问题分析等方面展开,总结负载均衡架构的一般套路和经验教训. 一.背景 项目背景是某企业的AAA管理系统, AAA ...
- Android View框架总结(五)View布局流程之Layout
转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52216195 View树的Layout流程 View的Layout时序图 View布局 ...
- 实战--Keepalived和LVS实现负载高可用
显然,只有上一篇的操作,在WEB运维技术中,只能承担一半的角色. 想像一下,如何LVS本身倒了,肿么办?后端的NGINX再多,也只能是干着急,请求过来不呀! 所以,在本篇时,我们来实现LVS永不倒, ...
- LVS(IPVS)了解
从来都只是看文章,现在手工作一下. 参考URL: https://blog.csdn.net/langyue919/article/details/80935197 https://www.cnblo ...
- Android-自定义View前传-View的三大流程-Layout
Android-自定义View前传-View的三大流程-Layout 参考 <Android开发艺术探索> https://github.com/hongyangAndroid/FlowL ...
- Android自己定义view之measure、layout、draw三大流程
自己定义view之measure.layout.draw三大流程 一个view要显示出来.须要经过測量.布局和绘制这三个过程,本章就这三个流程具体探讨一下.View的三大流程具体分析起来比較复杂,本文 ...
随机推荐
- CLTX 笔试题目预览
error: multiple storage classes in declaration of `i' 代理服务器常用以下端口: (1). HTTP协议代理服务器常用端口号:80/8080/312 ...
- VBlog 项目中注册用户流程解析
简介 项目来自 https://github.com/lenve/VBlog image 简单概括一下流程 浏览器中使用post 提交注册用户相关的信息, 然后 后端对于这个接口进行处理. 首先是 L ...
- C++ 标准函数 。abort & typeid
简介 abort() 使程序直接报core dump错误 typeid() 判断对象是否是同一个对象的时候使用,感觉类似js里面的type什么鬼来着 比如 dynamic_cast强制类型转换指针 i ...
- 旋转变换,对某个点进行绕x,y,z的变换。
简介 旋转变换,对某个点进行绕x,y,z的变换. 代码 #include <iostream> #include <vector> #include <algorithm ...
- 知道主机名称 如何知道ip地址
举例 ping -4 raspberrypi 就可以知道 ip 地址了.
- HyperWorks install
简介 网格划分软件HyperWorks 的下载链接 https://www.jb51.net/softs/677139.html#downintro2 hyperWorks 的安装链接 http:// ...
- OS-Ubuntu-Server-Connect to Wi-Fi using "netplan" From Terminal on Debian 11/10 with WPA Supplicant
0.netplan: netplan generate netplan apply wget https://dl.google.com/linux/direct/google-chrome-stab ...
- SciTech-Science: 纯色滤(分)光塑料片: 将光分解为BGR三原纯色(彩色CCD传感器原理) + “502熏显法”采集“指纹”与Glue胶水: 普通胶水是“胶”与“水”混合物因此不会黏上瓶子
彩色滤(分)光塑料片: 将光分解为BGR三原纯色 彩色CCD传感器原理 透过 一张 彩色滤(分)光塑料片 可以分解出 光源的"与滤光片同颜色"的成份: 例如 "B(蓝色) ...
- ARM-M与RISC-V(32bit)的区别--基于CM4与Nuclei_N300
1 systick与core timer ARM Cortex-M内核包含了一个SysTick定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定 ...
- 利用IntelliJ IDEA 为存在的UT(单元测试)生成代码覆盖率报告(Generate Coverage Report),以及更新UT后更新覆盖报告
IntelliJ IDEA导出UT覆盖率 在src/test/java目录下,右键需要运行的包,如图,点击Run '你的项目包名' with Coverage: 如果包下的UT太多,会执行较长的时间: ...