铺铜在设计PCB板时很重要,为了加深理解,笔者写下这篇学习的过程。

首先要理解什么是正片和负片,结合网上的资料来理解一下:

  • 正片实际就是能在底片上能看到的就是存在的
  • 负片实际上就是在底片看到的就是不存在的

呵呵,梳理一下,正片和负片从名字上就看出是相反的,下面的二张图最能说明区别了,很容易理解。
每天进步一点点------Allegro 铺铜详解-LMLPHP 
    上图是正片,黑色部分是铺铜,白色部分是过孔和焊盘。
每天进步一点点------Allegro 铺铜详解-LMLPHP 
    上图是负片,白色空白部分是铺铜,而黑色区域是过孔或者焊盘。

  • 正片的优点是如果移动元件或者过孔需要重新铺铜,有较全面的DRC校验。
  • 负片的优点是移动元件或者过孔不需重新铺铜,自动更新铺铜,没有全面的DRC校验。

每天进步一点点------Allegro 铺铜详解-LMLPHP 
    可以在上图看到热风焊盘,分为正热风焊盘和负热风焊盘
每天进步一点点------Allegro 铺铜详解-LMLPHP 
    这二种焊盘是针对内层中的正片或者负片的。也可以在选择焊盘时预览。

接着要理解动态铜箔和静态铜箔的概念和区别
    所谓动态就是能自动避让元件或者过孔,所谓静态就是要手动避让,其实他们有不同的设置主要是对动态铜箔的设置,可以通过shape->Global Dynamic Params来设置铜箔的参数。

铺铜的主要步骤是建立Shape.
    我们先学习一下如何建立Shape,可以在菜单栏上看到Shape
每天进步一点点------Allegro 铺铜详解-LMLPHP 
    下面根据Cadence的一本书中的实例来看看,如何为平面层建立Shape。

使用Shape的菜单项为VCC电源层建立Shape
    点击Shape->Polygon命令,并在options选项中设置为下。
每天进步一点点------Allegro 铺铜详解-LMLPHP 
注意Assign net name我们设置新建的Shape的网络名为Vcc并且为静态的Static solid,然后在Route Keepin区域中沿着边缘绘制出这个Shape形状。

使用Z-copy命令为GND地层建立Shape
在Edit-Z-Copy命令
修改Options如图
每天进步一点点------Allegro 铺铜详解-LMLPHP 
然后点击刚才设置的VCC的Shape创建完毕。
选择Shape菜单中的Select Shape or Void,然后用鼠标选中刚才创建的GND shape并右键选中Assign Net为复制成的GND Shape创建网络名,具体的Options为
每天进步一点点------Allegro 铺铜详解-LMLPHP 
至此我们使用二种方法制作了VCC和GND的Shape 。

接着我们要为了适应不同的电压对铺铜平面进行分割
    我们可以使用Add->line的Anti Etch对铺铜平面进行分割

使用Anti Etch来分割平面
    使用Add->line命令,并且设置Active Class为Anti Etch,线宽为20,然后在已经建立Shape的平面上,画出想要分隔的范围,再用Edit->Split Plane->Create
每天进步一点点------Allegro 铺铜详解-LMLPHP 
然后选择你分配给的电压网络,例如我这里是1.8V
每天进步一点点------Allegro 铺铜详解-LMLPHP 
点击OK完成Shape的分隔
 每天进步一点点------Allegro 铺铜详解-LMLPHP
图中画的有些粗糙,只是为了练习用来说明用。

下面来做一个建立动态Shape的练习,刚刚创建的GND的Shape是一个静态的,可以在那个Options中看到是没有设置动态选项

建立动态Shape
    使用Setup->Cross - Section命令设置底片的格式为“Positive"正片格式,然后使用Shape->"Global Dynamic Parameter命令设置动态Shape的相关参数,再使用Editor->Z-Copy命令复制制作新的GND层的Shape,
每天进步一点点------Allegro 铺铜详解-LMLPHP 
一定要注意这次选择上Create dynamic shape以创建动态的Shape
然后选择Shape->Select Shape or Void命令设置网络名称为GND.选择Done后制作完成。
另外可以使用使用Shape->"Global Dynamic Parameter命令或者Shape->Select Shape or Void修改已经建好的动态Shape

使用多边形分隔平面
    其实在上面建立VCC层的Shape时我们就使用了多边形的命令,只不过只是说沿着Route Keepin布线允许区域完整的走了一圈,现在可以根据个人需要设计多边形的分隔平面。
    还是使用Shape -> Polygon命令来创建,创建完成后可使用Shape->Select Shape or Void来选中刚创建的Shape并右键选择Raise Priority来改变Shape的优先级,也就是谁的级别高,级别高的Shape在移动时可以推挤级别低的Shape并保持隔离带。

增加挖空的多边形
    使用Shape -> Manual Void -> Polygon命令在需要对Shape进行挖空的地方绘制多边形,并且可以使用Shape->Manual Void ->Move移动,Copy拷贝,Delete删除创建的挖空,也可以通过修改Global Dynamic Parameters命令中的Void controls内的相关参数来设置直插和过孔的挖空情况,例如可以将直插元件的挖空连起来。

转换Shape的动、静态
    选择Shape->Change Shape Type然后通过填写Options中的Shape Fill Type为动态或者静态就可以实现转换。

编辑边界并添加Trace
    通过使用Shape->Edit Boundary修改边界,使用布线命令Route ->Connect来增加Trace并且使用过孔使Trace与目标元件相连。

删除孤铜
    我理解孤铜是指铺铜过程中产生的不平滑而且具有毛刺的形状,也有多余的部分。在网上竟然没有查到他的解释,只是感觉他能够对铺铜造成一定的负面影响,比如信号的干扰等。可以使用Shape->Delete Islands来删除孤铜。可设置某个层的也可以对全部层进行此操作。

分隔复杂的平面
    比较复杂的平面是让铺铜区域包含多个铺铜区域,或者是划分成多个铺铜区域。常用的做法使用增加Anti Etch来划分成二个或者多个部分。能定义分割的平面为正片还是负片模式。

定义复杂平面并把它输出底片
    定义复杂平面可以使用上面练习中的方法在一个平面层上利用Shape->Polygon来画多边形,然后使用Manufacturing->Artwork命令,弹出Artwork Control Form窗口
每天进步一点点------Allegro 铺铜详解-LMLPHP 
在Film Control中选择GND,然后点击Create Artwork生成Photoplot.log文件。

添加负平面Shape并孤铜检查
    象上面练习中的使用Z-Copy命令创建GND平面层的方法来创建一个负平面的Shape,然后使用Shape->Select Shape or Void来修改一下相关的设置,假如出现如书上的热风焊盘连在一起的情况
每天进步一点点------Allegro 铺铜详解-LMLPHP 
点击Setup -Constraints设置Negative plane islands为ON就打开了负负平面孤铜的约束检查功能。
这时候会在图上那一圈相连的焊盘上出现DRC的标志,利用Display->Element并对Find页面中仅选择DRC Markers,点击DRC的错误标志,就会显示详细的错误内容,可以看到一个很明显的错误是"SHAPE_ISLAND_OVERSIZE”,是说明孤铜超过尺寸了,下面对出现错误的焊盘进行修改。

使用Tools->Padstack->Modify Design Padstack命令然后用鼠标单击出现问题的焊盘,单击Options中的Edit按钮,就会弹出Pad Designer编辑器,这时候改变
每天进步一点点------Allegro 铺铜详解-LMLPHP 
更变相关层的AntiPad的Width,使它小一些,然后执行下面操作完成修改。
每天进步一点点------Allegro 铺铜详解-LMLPHP 
到此重要的铺铜这一课算是补上了,但是总结一下,发现可能练习的比较乱而杂,希望学习的朋友多看几遍

05-11 19:48