对多管脚,高密度元件的BGA设计板布线是一件不容易的事情。
所有的工程师都梦想可以有一个自动布线器,自动的把脑子里的设计和布线要求根据实际情况进行布线,流畅得就像一个奥运滑冰冠军。好了,让我们来看看什么是交互式布线吧。
自动布线是一项很有用的功能。自动布线可以用来测试设计板的完整性,测试设计的可布线性,或者通过测试性的布线来判断是否有足够的信号层。所有这一些方法都能够帮助工程师完成最后的布线。
但是不管采取什么样的布线方法,总是需要通过手工来强迫设置一些改变。一个高密度元件,高速交换,和对时钟有特殊要求的现代设计板需要诸如可控阻抗布线,差分对布线,长度吻合,等特殊的布线方法。并需要在仔细设计的层栈堆中很仔细的选择层的配对。
对每个网格进行布线不是一个简单的线性流程。布线就是一个复杂的非线性流程,将一大堆连接线变成整洁而有序的不同设计层。每当新的线路增加的时候,布线过程就需要经历不断的修改和调整。
为了取得更优的布线结果,需要有提供众多工具的设计环境的支持。Altium Designer则提供了这样的功能。在Winter 09版本中,Altium将所有交互式布线工具包括已经很出色的交互式布线功能集成在一起,建立了一个强大的布线引擎。
那集成会带来的好处是什么?把所有的工具集成在一起可以让过程更统一。无论是对网格布线,或者是差分对,总线,甚至一次拖拽16条线路以获取更多的空间,在一个集成的环境里是一样的。在这样的环境里中,用户可以轻松的完成对布线的拖拽和推挤,或总线对现有布线的贴近。
布线是一个很广泛的主题,限于篇幅无法在本文中涉及太深。在这里,我会在讨论集成布线引擎行为和功能时再就一些重要的方面加以深入。
设计规则在板级设计中至关重要,所以花时间设置正确的规则是很有必要的。不要因为简单省时就为整个设计板设定一个 宽度的布线规则。我们可以问自己这样的问题:我可以通过目前的宽度规则来对设计板所有宽度的网格进行布线么?如果答案是否定的话,请添加合适设计规则。使用网格类的概念可以让规则的定义过程更加有效。
为设计板定义层的栈堆需要很多的技巧。工程师不仅需要建立足够的层来完成所有连接的布线,一个好的堆栈的设计可以为最终设计板获得优化的信号完整性和EMC/EMI性能。
层的栈堆必须成为所有阻抗可控的布线需求之一,如有必要则需要为噪音网格(例如地址线)和静态网格(例如数据和时钟)区分提供支持。其他需要注意的问题则有:
有很多的业界专家可以提供关于可能的栈堆定义和设计,包括:
http://www.hottconsultants.com/tips.html
http://www.sigcon.com/pubsIndex.htm #layer stack
http://www.freelists.org/archive/si-list/
http://www.pcbmatrix.com/Forum/
从哪里开始布线呢?这样的问题类似于询问:一根线有多长?答案不是单一的。先对电源和接地网络开始,特别是那些不能放置在内电层的网络。需要对接地层的分离特别小心,因为这样会造成在分离中所有信号网络返回信号的阻碍,和层关联的中断。建议阅读 Tim Williams的文章,学习如何使用内电层。
在为信号网络布线时,建议从最重要的网络例如时钟,差分对,和对时钟有特殊要求的网格开始。当使用位置优先的规则时,建议先注意拥挤的区域。Altium Designer提供了很多出色的扇出工具,可以用来支持BGA和其他高密度表面贴片操作。从自动布线的菜单进入,或者直接点击物件并选择扇出功能,通过为扇出设计的规则来确认安全间距,宽度,和布线,最后可以开始扇出一整个网络。
在以前的以基于软件的板级设计中,给单一网络布线就像建立一堵砖墙。一块一块的砖累加起来,基本上是一个循序渐进,有条不紊的流程。
但Altium Designer提供的布线却完全不这样的。当工程师按下熟悉的P,T等快捷键,选择焊盘,并移动鼠标,一个连续不断的线段就会出现,并在选定的焊盘和光标间走动,寻找合适的路径。工程师可以通过点击鼠标来引导布线的方向。
布线器有多种运行模式。例如障碍物处理,贴近已有线路或将布线长度最小化;光滑处理等一系列的布线模式。在布线的时候,按下Shift+F1即可显示用户切换于各种不同模式的快捷键列表(或者是快捷键面板)。当前的设置会在状态条上显示,但如果觉得太拥挤的话则可以选择简化显示模式。
自动布线是非常节省时间的。如果在当前层有路径存在,通过Ctrl+点击就可以完成当前的连接。或者通过P,T等快捷键开始布线的时候,Ctrl+点击一个新的连接,很快就可以完成类似的连接。对于产生的路径上的扭结,很快就可以用手动的方式来解决。
请记住,和所有的交互式布线功能一样,Ctrl+点击也应用了当前障碍回避模式(类似于推挤或绕开)。建议尝试推挤模式,看看交互式布线是如何在紧密的区域完成布线的。
Ctrl+点击可以推挤当前物件以获得更多的空间,自动完成布线。
因为一些问题必须重新布线的情况经常发生。更大的问题是在对一个高密度设计板进行布线的时候,必须不断的优化当前的布线。Altium Designer却可以满足这两种截然不同的要求。
消除回路 – 这可能是一个新的名词。在Altium Designer里,通过P,T按键开始交互式布线,点击已有线路,再通过一系列点击来定义新的路径。当回连原来的线路时,原来的多于线路已经自动的被消除了。该功能对于清除当前布线的瑕疵线段很有用。
布线一个新的路径,原来的回路会自动的被清除。
线段拖拽 – 对于多个路径的修改,可以通过一次拖拽就可完成。通过Ctrl+点击并拖拽线段到一个新的坐标,并可以保持原有线段和节点的完整性。鉴于所有的布线工具都集成到了一个布线引擎里,拖拽也同时支持推挤,所以也就很容易的通过选择最新的路径,并把它们拖拽到一个新的坐标位置。通过障碍物忽略可以轻易的绕开已有焊盘和固定的线路。把拖拽的线段和不同的快速网格相比较,就可以看出线段拖拽是如何的有效了。
Ctrl+点击并拖拽一个线段,推挤到一个新的坐标位置。
对于Altium Designer来说总线或者多重网络布线是一项很灵活的任务,相当于用总线把选定的一系列网络连接在一起进行布线。有效的多重网络布线的关键在于通过菜单Edit》Select》Touching Line命令(S,L快捷键)选择焊盘。在画线选择的元件内(不同于母元件)焊盘的时候,同时按住Ctrl。和平时一样在布线层中间切换,然后按快捷键5来圈定过孔部份。
通过Ctrl+点击自动布线快捷键来完成目标焊盘的网络布线。如果网络布线没有自动完成,请检查是否还有大量的在起始位置的未放置部件,并先行放置,并重新选择自动完成功能。
按快捷键5来选择过孔部份风格,Ctrl+点击完成所有目标焊盘的布线。
在Winter 09的集成交互式布线引擎里,差分对布线和单面布线一样的灵活和流畅。贴近已有路径,在一个紧密的区域进行推挤,Shift+T完成管脚交换,Ctrl+点击完成目标焊盘的配对自动完成。
差分对也可以进行管脚交换。
避免严格的计时信号偏差的标准技术通常是均衡布线网络的长度。Altium Designer对已有布线长度(Tools菜单)的优化支持可以优化布线网络的长度。在布线的时候按Shift+A激活长度均衡模式,并按下Tab打开交互式长度优化对话框,选择目标长度的定义,然后根据情况来设置长度均衡。
按Shift+A激活交互式长度均衡功能。
软件工具的一大挑战是在增强技能的同时不受到其他方面的制约。Altium Designer增强型的交互式布线引擎就能够做到这一点。不仅让用户更有效的完成布线或重新布线,还无需学习不同的技术或者遵循规定的使用规则。只要记住通过Shift+F1显示快捷键,通过状态面板或者简单模式来获取目前的配置,通过Ctrl+点击来拖拽并修改已有的布线,就可以获得交互式布线带来的益处。