使用Cadence SPB设计时,如何在布置Via Array时避免盘中孔?
版本 | 日期 | 说明 |
---|---|---|
V0 | 20240206 | 初版 |
V1 | 20240617 | 该方法似乎不正确 |
软件套件是Cadence SPB 17.4,其他版本可以用同样的思路尝试。
1. Via Array的作用
这里指的是布置接地的Via Array,为信号提供尽可能短的回流通路。
2. 布置Via Array时的盘中孔
Place Via Array的时候,即使已经勾选了Enable DRC check,布置的过孔会避让其它网络,但是不会避让同名网络,造成“盘中孔现象”。
如下图是一个例子。高亮的是一个盘中孔,虽然电气连接正确,也能通过DRC,但是不利于制造和焊接(即违背了DFM),因此尽量避免。
查找盘中孔然后一个个删除很麻烦,如果布置过孔时就能避免问题是最好的。
3. 处理思路
既然DRC会自动避让不同网络,那么思路就是:
- 让过孔的网络与器件接地网络不同。
- 放置Via Array,此时会自动避让。
- 删除可能依然存在的少部分盘中孔。
- 修改过孔网络与器件接地网络一致。
- 刷新PCB版图,此时在PCB中二者网络名一致。
4. 实例
4.1. 保证原理图中有多个名称的地
上图是一个插座,本来Pin#1~Pin#40全是 GND
,但是现在取Pin#1为一个新名称 GND_VIA
。
在顶层中生成对应的Block,是同时具有 GND
和 GND_VIA
Pin的(前提是使用了Hierarchical风格设计方式)。
我们可以将两个Pin连到一起(同一个网络)或者分开(不同网络)。
按照以上思路,先将两个网络名称分开,连接如下图所示。
4.2. 同步到版图
将以上原理图同步到版图,可以发现插件上面一排原本都是 GND
网络,现在Pin#1名为 TEMP
。直观起见,GND
网络被赋予了灰色,红色是顶层Pin的颜色。
4.3. 布置Via Array
Place Via Array,网络是 TEMP
,这样布置时就会自动避开器件接地管脚(因为它们网络名为 GND
)。
注意:插件Pin#1的网络是 TEMP
,所以仍然可能有少数的盘中孔在这个Pin周围,但是只是一个Pin的范围,手动删除很简单。
4.4. 原理图修改网络并同步
将原理图的网络名改为相同的 GND
,如下图所示。
再同步到PCB版图,如下图所示。
此时插座的Pin#1已经回到了 GND
,颜色灰色。并且之前布置的Via Array的网络也修改为 GND
。
至此,Via Array布置完成,且避免了盘中孔问题。
5. 实现原理
如果使用SPB17.4的Update Layout就容易看出,以上操作的实际原理为:
- 增加了一个网络名为
TEMP
,并修改部分器件的连接关系到TEMP
。 - 为
TEMP
网络增加了Via。 - 将
TEMP
网络重命名为GND
,因此TEMP
网络在版图中不复存在,所有本来与TEMP
连接的器件、过孔都改为连接到GND
。
不知道如果使用SPB16.6那一套“生成网表\(\to\)导入网表”的操作模式,以上方法是否一样可行。
6. 补充
20240617补充:这次画另一个板子发现似乎不可以这么做。如果照以上方式做完,Via会全部悬空。
但是我可以保证,当时照以上方法做是可以的,不知道是不是原理图或版图有一些细节需要注意。
在网上查找关于避免盘中孔的资料。
第一个网址是Cadence Allegro 如何避免过孔via 过于靠近焊盘 造成DFM问题 – 吴川斌的博客 (mr-wu.cn),也被引用很多。但是我尝试的结果是:没用。照这样设置完约束,再放置Via Array,只能避免那些与焊盘只有一点点Overlap的情况。如果Via完全处于焊盘上则不行。特别是如果焊盘本身具有穿孔特性(比如SMA管脚、插针管脚等等),是一点用都没有。
简单来说,根本找不到设置约束管理器的某种方法,能使得盘中孔被当成DRC错误报出来,如果能做到DRC报错,应该就能正常布Via Array。
依照这个思路又找到第二个网址Allegro过孔重叠却不报DRC错误的解决办法-无线时代 (witimes.com)。结论是:依然没用。多一项设置并不会使得DRC错误展示出来。
以下是我的设置。CM中对Same net spacing的Thru Via Pin To...都是有设置的。
Analysis Mode中的Thru Via To和Hole To检查都是打开的,甚至如果fanout via有一点重叠就能检查出来,但是Via array就是不行。