写在前面
版图是一个非常吃经验的工作,如果一段时间不画版图,那么这个人的版图能力也会退化,并且由于先前绘制版图时那些不太好的回忆,会导致这个人对版图产生惧怕心理,不敢再涉足版图的工作,这里我就将我的一些经验的东西写在这里,供以后的我参考。
版图设计的小技巧
自动去除线头
这个功能我以前曾经再eetop上看到过,有人用skill脚本实现过,skill脚本通常来说会有一定的bug。但是我最近在画图的过程中,发现不用skill脚本也可以实现这一功能的办法,这里记录下来,以备之后绘制版图的过程中予以参考。
具体方法:
- 先使用
s
快捷键进入拉伸模式 - 再使用
鼠标左键
进行批量选择 - 最后使用
鼠标左键
进行拉伸即可去除线头。
仅选中Selectability中生效的层的Via
这里问题主要存在Cadence中的一个可选项不可视的问题,这个问题我搜索了一下,最后找到了一篇对应的Cadence的帖子,链接如下,
其中,作者将问题描述为如下所示,
最终支持人员给出的解决方案如下,
简单来说,如果要实现我们想要的那个不选择看不见或者没选中的器件,需要使用下面的语句,
envSetVal("layout" "viaSelectionMode" 'cyclic "useCutLayers")
经过我实验过后,发现是可行的,只不过退出Cadence环境后,都需要重新进行输入操作,这样有些麻烦,应该可以在cadence中进行预先设置。本人修改了位于home下的文件.cdsenv
,在其中加入了如下的条目
layout viaSelectionMode cyclic useCutLayers
这样一来每次打开virtuoso的时候,就会自动将该环境变量进行赋值,就不需要每次都进行更改了。
自动添加pin与label
每次手动添加label与pin非常费力费时,这时可以考虑将这一部分操作进行自动化。
具体方法:
- 点选
Create
栏目; - 点击
Pin
; - 选择
Auto
; - 在
Pin Layer/Purpose
一栏中,选择Use same layer as shape, select purpose
中的复选框,将Purpose设置为pin
; - 选择Create Label,将复选框选为
auto
; - 点选
Option
进行Label属性的设置; - 设置Height & Font为你想要的大小;
- 在
Text Options
栏目中,选择Create As Label
; - 在
Layer Name
栏目中,选择Same As Pin
; - 在
Layer Purpose
栏目中,选择Same As Pin
设置完以上之后,每次点击Create
->Pin
之后,再点击想要设置的线网形状即可,非常方便。
自动打过孔Via
这个功能在铺设地网和Power网的时候非常好用,基本上就是直接使用即可,一般来说我们在设计过程中一定会需要打过孔的情况,这时如果采用手动打过孔的方式,那么就会非常复杂和麻烦,这时候可以采用借助工具的方法。在这里不禁感叹一句,”懒惰就是发明工具的第一源动力”。Anyway,我在这里采用o
快捷键进行过孔的添加。
具体方法:
- 点击快捷键
o
后,点击Auto
,进入过孔自动编辑页面; - 在
Cut Class
中,设置你想要的过孔形状,在Options中最好也设置成对应的; - 点选
Prevent DRC Violations With Neighbors
; - 点选
Prevent Via Larger Than Overlap
; - 在你确定线网名称后,可以使用
Connect Shapes On The Same Net
选项,并输入你的网表名称,这样可以只打一种过孔。在铺设地网和Power网的时候非常好用,并且在后期打过孔时也非常好用。
以上过孔方法可以配合自动去线头的方法一起使用,效果极佳。
检查Marker报错的原因
有的时候,Marker会报错,这是由于ADEXL内部自动带的检查规则导致的,这时,你可能不知道怎么去看Marker报错的原因。你可以使用如下方法检查Marker报错的原因。
具体方法:
Verify
->Marker
->Explain
即可查看Marker报错的原因了,非常简单方便。
仅仅选择指定类型的对象
在Cadence中进行选择的时候,我们常常会发现选中的内容中包含了instances
,往往这是我们不希望使用的,可以在Pallete
中的Objects
窗口中选择Objects
。其中有不同对象的Visibility
以及Selectability
,读者可以通过这些设置进行选择对象的Filtering,如下所示
绘制地网&Power网
一块一块绘制的方法肯定是不可行的,非常浪费时间,我们这里采用Create
-> Wiring
-> Stranded Wire
的方法,便可以快速绘图了。
以下表格给出了具体的线宽和线间距设置,按照此规定设置可以保证最终结果满足要求,并且在打过孔的时候不会出现问题。
Layer Name | 线宽 | 线间距 |
---|---|---|
M9 | 0.468 | 1.188 |
M10 | 1.8 | 3.6 |
拉伸到指定位置
我们在做拉伸的时候,经常会发现拉伸到指定位置比较困难,因为你要去对准某一个特定的位置,这时候需要放大仔细对准,这是非常不方便的。我们可以使用标尺先测量距离,再进行精确拉伸即可达到目的。
具体方法:
- 使用
s
进入拉伸操作; - 使用
k
进行距离测量; - 使用
TAB
切换到dx或dy输入框; - 输入测量得到的距离,按回车之后即可;