cadence SPB17.4 - allegro - 铺铜后DRC报错
前言
优化了板的布局布线, 也可以不铺铜. 铺铜可以更好(地平面完整, 制板容易, 焊接应力小).
铺铜前, 进行了DRC, DRC通过, 0错误0警告.
开始铺铜, 然后进行DRC检查, 突然报了很多错误. 因为取下动态铺铜后, 再DRC, 0错误0警告.可以确认, 这些错误是铺铜造成的。.
仔细阅读错误的提示, 这些都不能算错.
查完资料后, 决定采取以下措施消除DRC报错:
-
从归档工程中, 迁出铺铜前保存的原始工程.
-
动态铺铜(具有自动避让功能)
-
在线DRC出现错误
-
将动态铜皮转化为静态铜皮(防止动态铜皮)status查看时, 点击smooth引起新的DRC).
-
设置静态铜皮显示模式, 防止静态铜皮显示的不明显(只显示边框, 显示的颜色太浅了).
-
设置Waive DRC不显示
-
确认你所确认的不是错误的DRC标记为 Waive DRC, 然后不显示这些Waive DRC来解决DRC的报错问题.
如果铺铜前DRC通过, 可动态铺铜DRC所有放心的选择, 然后统一标记为Waive DRC. 假如不放心, 可以先手工查看一次, 应该都不是错的DRC.
-
删除死铜.
-
重新进行DRC确认
笔记
Waive DRC概念
Waive DRC 这意味着确认并放弃指定DRC.
意思是: allegro按规定检查, 发现不符合规定DRC错误. 我们不认为这是一个错误, 做了标记, 告诉allegro: 这个DRC不是错误, 不能算作DRC. 那allegro就不管了, 听我们的.
更好的方法是找到设置这些具体规则的地方, 设置合适的规则, 一次性不会错。DRC去掉检查结果.
但设置锐角检查的角度, 是全局的. 具体对象无法设置. 这时, 改变全局锐角检查设置, 所有规则都会受到影响. 若有新的DRC, 真有问题的锐角交叉线时, 会漏掉真正的错误, 造成事故.
还有些DRC报错, 人工确认不是错的, 但是规则在哪里设置, 如果找不到, 暂时也可以手动确认, 标记为Waive DRC, 它可以作为一种过度的方法. 知道以后如何设置具体规则后, 设置规则.
从归档工程中, 搬出铺铜前保存的原工程
开发时, 每当有实际的进化, 就归档, 一旦出现问题, 可以从干净的归档进度开始开发. 避免引入不确定因素.
动态铺铜全局参数设置
若使用默认参数, 铺铜后, 有些线太细了. e.g. 2条线间距就20mil, 默认铺铜后, 中间还有一条很细的铺地, 这不应该吗?
动态铺铜(具有自动避让功能)
第一次铺铜时, 一定要选择动态铺铜. 利用动态铺铜自动避让功能, 自动铺铜到位.
铺铜在allegro中, 指定层, 放一个shape, 在option将面板指定为动态铺铜, 指定网络, 开始画形状.
然后在相应的层画图形
allegro SPB17.4有bug, 放铺铜时, 一定要放好一个shape后, 点击完成.
若画好一个shape后, 接着换层, 然后画另一面动态铺铜, 选择右击一起完成, 没有效果. 要严格一个一个操作.
同理, 换到其他层, 动态铺铜画.
动态DRC出现错误
由于选择了所有的检查开关, 并打开动态DRC.
动态铺铜完成后, 主画布上出现了很多DRC错误的显示.
将动态铜皮转化为静态铜皮
防止status查看时, 点击smooth引起重新DRC.
将当前层改为铜皮对应层, 左击选择铜皮.
右击更改铜皮
有提示说, 若铜皮填充方式发生变化, 铜皮的设置参数没有了.
只能选择是.
看到命令窗口有提示, 动态铜皮已改为静态铜皮.
Converting dynamic copper fill shape to static solid
选择右击菜单.
同理, 将其他铜皮改为静态铜皮.
变成静态铜皮后, 再选铜皮, 是一块一块的铜皮, 而不是开始铺一大块铜皮.
若下次要重新铺动态铜皮, 最好删除这些破碎的静态铜皮.
设置Waive DRC不显示
标记不是错的DRC为Waive DRC
确认你所确认的不是错误的DRC标记为 Waive DRC, 然后不显示这些Waive DRC来解决DRC的报错问题.
如果铺铜前DRC通过, 可动态铺铜DRC所有放心的选择, 然后统一标记为Waive DRC. 假如不放心, 可以先用DRC Browser手动检查一次, 应该都是不算是错误的DRC. 假如有真的DRC, 先处理掉().
只选择DRC对象
当DRC检查结果出来后, 用DRC Borwer看时, 鼠标会触发选择多个对象, 不只是DRC结果标记.
这时需要在Find面板, 只选中DRC. 然后用鼠标点击主画布上的鼠标DRC标记时, 只有DRC和DRC选择相应的对象.
人工确认DRC结果真的错了吗?
DRC结果出来后, 用DRC browser查看时, 跳到主画布上DRC一般位置, 像铺铜后的DRC比较多. 到底哪个DRC具体错误, 在DRC browser上看不方便. 这时, 可以在主画布上具体说明DRC左击标记, 看提示信息.
左击选择上图中的DRC标记后, 晃动鼠标, 在选择中悬挂鼠标DRC标记上, allegro即时提示信息.
可以看到, 这个DRC错误的原因是:从电线到形状的角度, 规则为90度, 实际的值为62.5度.
若不铺铜, 这是对的.
铺铜后, 由于铜皮和焊盘之间有安全间距, 此时,电线与铜皮之间, 自然有一个角度, 这个角度一定不是90度.
可以确认, 这不是一个错误.
标记DRC为Waive DRC
弹出标记为Waive DRC的原因, 放弃的原因是我确认这不是错误的. e.g. ok. 然后点击确认键, 标记完成.
本标记的原因文本, 下次标记时, 在输入框中, 我们不需要再输入, 只需要点击OK.
因为我们从上面开始, 未显示已设置 Waive DRC, 所以, 标记完Waive DRC后, 看不见这个DRC了.
在DRC Browser中, 右下角可见Waive DRC的数量.
在右列表中, 默认显示一切DRC(Waive DRC也显示), 这样很碍眼. 在Waive DRC列中选择只显示没标记过的DRC.
右边列表中没有Waive过的DRC, 双击跳转到主画布 报错处, 将不是真正DRC所有错误.
看官方文档, 锐角检测DRC默认不开.
我是将mode所有选项都钩上, 才出的这类DRC报错.
最大化检查, 靠谱些.
/p>
默认的锐角检查角度是90度.
Line to Shape Same Net Spacing
这个报错说:相同网络的线和图形之间规则是10mil, 实际值为5.7mil, 不够规则指定的值.
这类DRC显然不是错误. 相同网络就可以连在一起, 距离多少都没关系.
这个规则给焊接时散热用的. 为了使热量不散的太快.
关键是, 这是动态铺铜时, 自动避让出来的, 暂时不知道在哪里设置铺铜的这个效果.
这类DRC可以标记掉.
Soldermask to Pad and Cline Spacing
阻焊层和焊盘/线有间距, 这个咋可能? 本来线就要连接到焊盘中心的, 当然要穿过阻焊层.本来就是没有距离的.
估计是报错的这条线, 经过gloss后, 圆弧线的端点中心不在焊盘中心的缘故. 只要没有明确的错误, 我也不能随便手工去动gloss优化过的线.
这种用gloss优化过制造便利性的线, 有可能线端点不在焊盘中心, 这不能算作错误. 只要线和焊盘接触的宽度够就好.
还有一种可能, gloss后的线, 由多段线段组成(已经不是一条线了), 那这个线段集合中的某一条线, 是线集合中间的一条, 当然和焊盘不相连.
这个报错也可以标记掉.
标记完后查看确认
如果铺铜前, 做过DRC, 通过了.
只是铺铜后, 出现的DRC, 都可以标记掉.
全部标记完后, 在DRC Browser中的顶层DRC节点上单击, 等几秒, 会看到右小角的提示, 总共180个DRC, 标记了180个DRC.
设置静态铜皮显示方式
设置静态铜皮显示方式, 防止静态铜皮显示的不明显(e.g. 只显示边框, 显示的颜色太浅了).
选择图形填充
这里不勾选"不要图形填充"
这里勾选静态图形实心填充.
设置图形透明度
这里的透明度看自己喜好, 让形状显示清晰一些就好.
静态铜皮的显示效果
可以看到静态铜皮在未选择情况下, 显示效果比透明效果颜色深一些, 能和未铺铜的区域区别开.
其实还想要静态铜皮的透明度颜色再深一些, 不知道该怎么设置. 这样也能接受.
删除死铜
如果有死铜, 就删一下.
重新进行DRC确认
DRC检查后, 可以看到都是我们自己标记掉的DRC. 没有真正的DRC.
因为已经将动态铜皮转成静态铜皮了, 在status对话框上点击Update All/Update DRC, 也不会产生新的真正的DRC.
只有很多的Waived DRC, 这些标记过的DRC, 可以点击前面的黄框, 在列表日志中再看一眼.
至此, 动态铺铜产生的DRC处理就完成了.
下一步, 就可以画拼板, 出板厂生产文件.
总结
Waive DRC的优点:可以人工确认DRC是否有错.
Waive DRC缺点:如果不是错误的DRC很多, 手工操作有点慢.
所以, 在动态铺铜前, 要进行完整DRC检查并通过. 动态铺铜后的DRC, 可以统一查看一次, 只修正真正的DRC. 其他不是错误的DRC全部一次都标记掉.
但是相对于画板子(原理图到板子布局布线完成)的时间, 手工确认DRC的时间还真不算个啥.