Cadence_SPB16.2入门教程——PCB布线看了之后对于一个需要画DDR2的新手实在帮助良多,可能更多的人需要,所以分享在这里PCB布线4.1PCB层叠结构层叠结构是一个非常重要的问题,不可忽视,一般选择层叠结构考虑以下原则:·元件面下面(第二层)为地平面,提供器件屏蔽层以及为顶层布线提供参考平面;·所有信号层尽可能与地平面相邻;·尽量避免两信号层直接相邻;·主电源尽可能与其对应地相邻;·兼顾层压结构对称。对于母板的层排布,现有母板很难控制平行长距离布线,对于板级工作频率在50MHZ以上的(50MHZ以下的情况可参照,适当放宽),建议排布原则:·元件面、焊接面为完整的地平面(屏蔽);·无相邻平行布线层;·所有信号层尽可能与地平面相邻;·关键信号与地层相邻,不跨分割区。基于以上原则,对于一个四层板,优先考虑的层叠结构应该是:·S←信号·G←地平面·P←电源层·S←信号对于一个六层板,最优的层叠结构是:·S1←信号·G1←地平面·S2←信号·G2←地平面·P←电源层·S4←信号对于一个八层板,有两种方案:方案1:方案2:·S1←信号S1←信号·G1←地平面G1←地平面·S2←信号S2←信号·G2←地平面P1←电源层·P←电源层G2←地平面·S3←信号S3←信号·G3←地平面P2←电源层·S4←信号S4←信号方案2主要是比方案1多了一个电源层,在电源比较多的情况下可以选择方案2。对于更多层的结构也是按照上面的原则来定,可以参考其它的资料。下面以SMDK6410核心板(设计为八层板)来设置层叠结构,包括规则设置,PCB布线等。打开程序-CadenceSPB16.2-PCBEditor,然后打开在第3章布局好的PCB文件。点击工具栏的图标按钮,或者选择Setup-Cross-section菜单,如图4.1所示。图4.1层叠结构设置弹出LayoutCrossSection对话框,如图4.2所示。图4.2LayoutCrossSection对话框由于电路板是用手工建立的,所以在CorssSection中只有Top层和BOTTOM层,需要手工来增加6个层,并调整层叠结构。在SubclassName一栏前面的序号上点击鼠标右键,弹出一个菜单,如图4.3所示。图4.3增加层可以选择AddLayerAbove在该层上方增加一层,可以选择AddLayerBelow在该层下方增加一层,还可以选择RemoveLayer删除该层。在走线层之间还需要有一层隔离层。最后设置好的八层板的层叠结构如图4.4所示,采用的是方案2的层叠结构。图4.4设置好的八层板层叠结构SubclassName一列是该层的名称,可以按照自己的需要来填写。Type列选择该层的类型,有三种:·CONDUCTOR:走线层;·PLANE:平面层,如GND平面;·DIELECTRIC:介电层,即隔离层。Material列设置的是该层的材料,一般根据实际PCB板厂提供的资料来设置。Thickness设置的是该层的厚度,如果是走线层和平面层则是铜皮的厚度。Conductivtl设置的是铜皮的电阻率。DielectricConstant列设置介电层的介电常,与Thickness列的参数一起都是计算阻抗的必要参数。LossTangent列设置介电层的正切损耗。NegtiveArtwork设置的是该层是否以负片形式输出底片,表示输出负片,表示输出正片。在这个板中,POWER1与GND2采用负片形式。设置好后点击OK关闭对话框。4.2布线规则设置布线约束规则是PCB布线中很重要的一步工作,规则设置和好坏直接影响到PCB信号的好坏和工作效率。布线规则主要设置的是差分线,线宽线距,等长匹配,过孔等等。下面一步一步设置这些规则。约束规则在约束管理器中设置。选择菜单Setup-Constraints-ConstraintManager。或者直接点击工具栏上的图标按钮打开约束管理器,如图4.5所示。图4.5打开约束管理器打开约束管理器后的界面如图4.6所示。图4.6约束管理器可以看到界面包含了两个工作区,左边是工作簿/工作表选择区,用来选择进行约束的类型;右边是工作表区,是对应左边类型的具体约束设置值。在左边共有6个工作表,而一般只需要设置前面四个工作表的约束就可以了,分别是Eelctrical、Physical、Spacing、SameNetSpacing。分别对应的是电气规则的约束、物理规则的约束,如线宽、间距规则的约束(不同网络)、同一个网络之间的间距规则。为了能更好的使用约束管理器,先做一点基本概念的解释。4.2.1对象(object)对象是约束所要设置的目标,是具有优先级的,顶层指定的约束会被底层的对象继承,底层对象指定的同样约束优先级高于从顶层继承下来的约束,一般尽量在顶层指定约束。最顶层的对象是系统system,最底层的对象是管脚对pin–pair。对象的层次关系依次为:系统(system)-设计(Designe)-总线(bus)-网络类(netclass)-总线(bus)-差分对(differentialpair)-扩展网络/网络(Xnet)-相对或匹配群组(Matchgroup)-管脚对(Pinpair)(1)系统(system)系统是最高等级的对象,除了包括设计(比如单板)之外,还包括连接器这些设计的扩展网络、互连电缆和连接器。(2)设计(Designe)设计代表一个单板或者系统中的一块单板,在多板结构中,每块板都是系统的一个单独的设计。(3)网络类集合(netclass)网络类集合可以是总线、网络扩展网络、差分对及群组匹配的集合。(4)总线(bus)总线是管脚对、网络或者扩展网络的集合。在总线上获取的约束被所有总线的成员继承。在与原理图相关联时,约束管理器不能创建总线,而且总线是设计层次的,并不属于系统层次。(5)差分对(differentialpair)用户可以对具有差分性质的两对网络建立差分对。(6)扩展网络/网络(Xnet)网络就是从一个管脚到其他管脚的电子连接。如果网络的中间串接了被动的、分立的器件比如电阻、电容或者电感,那么跨接在这些器件的两个网络可以看成一个扩展网络。如图4.7所示,网络net1、net2和net3组成一个扩展网络。图4.7Xnet(7)相对或匹配群组(Matchgroup)匹配群组也是网络、扩展网络和管脚对的集合,但集合内的每个成员都要匹配或者相对于匹配于组内的一个明确目标,且只能在【relativepropagationdelay】工作表定义匹配群组,共涉及了三个参数,目标,相对值和偏差。如果相对值没有定义,匹配群组内的所有成员将是绝对的,并允许一定的偏差。如果定义了相对值,那么组内的所有成员将相对于明确的目标网络。·目标:组内其他管脚对都要参考的管脚对就是目标,目标可以是默认的也可以是明确指定的管教对,其他的管脚对都要与这个目标比较。·相对值:每个成员与目标的相对差值,如果没有指定差值,那么所有成员就需要匹配,如果此值不为0,群组就是一个相对匹配的群组。·偏差:允许匹配的偏差值。(8)管脚对(Pinpair)管脚对代表一对逻辑连接的管脚,一般是驱动和接收。Pinpair可能不是直接连接的,但是肯定存在于同一个网络或者扩展网络中。4.2.2建立差分对本设计中共有三对差分线信号,分别是DDR内存时钟信号、USBOTG数据信号、USBHOST数据信号。在约束管理器中选择Objects-Create-DifferentialPair,如图4.8所示。图4.8建议差分对弹出CreateDifferentialPair对话话,如图4.9所示。图4.9CreateDifferentialPair对话框在左上角的下拉框中选择Net,然后在下面的列表框中找到DDR内存芯片的两个时钟信号网络分别是XM1SCLK、XM1SCLKN在列表框中双击这两个网络或者单击选中后点按钮加到右边的Selections编辑框中。在DiffPairName编辑框中输入差分对的名字:DDRCLK,然后点击Create按钮。点击Close关闭对话框。其它的两个差分对用同样的方法建立,这里就不重复了。最后点击左边Eelctrical工作表下的Net-Routing,在右边的工作表中就可以看到设置好的三个差分对。如图4.10所示。图4.10设置好的差分对4.2.3差分对规则设置建立好差分对后,还需要建立一个专门于差分对的电气规则。首先点击左边工作表选择区中的Eelctrical工作表下的EelctricalConstraintSet-Routing-DifferentialPair,然后选择菜单Objects-Create-EelctricalCSet,如图4.11所示。图4.11差分对规则设置弹出CreateElectricalCSet对话框,如图4.12所示。在ElectricalCSet编辑框中输入该约束规则的名称:DIFF_FAIR,点击OK关闭对话框。图4.12CreateElectricalCSet对话框这时候在右边的工作表内我看看到多了一个DIFF_PAIR约束规则,如图4.13所示。图4.13增加的DIFF_PAIR规则下面给这个差分对约束规则设置参数。差分对约束规则参数主要有以下几个:·UncoupledLength:差分对网络中的不匹配的长度。即不能按差分对走线的总长度。·MinLineSpacing:最小的线间距。·PrimaryGap:差分对最优先选择的线间距(边到边间距)。·PrimaryWidth:差分对最优先选择的线宽。·NeckGap:差分对在Neck模式下的线间距(边到边间距),用于在布线密集区域内切换到Neck模式,这时差分走线的线间距由PrimaryGap设定的值切换到该值。·NeckWidth:差分对在Neck模式下的线宽,用于在布线密集区域内切换到Neck模式,这时差分走线的线宽由PrimaryWidth设定的值切换到该值。最后设置的差分线规则约束参数如图4.14所示。图4.14设置好的差分线约束参数由于布线密度大走线空间有线,所以差分线的间距采用1W原则(线边到线边),如果空间允许,可采用3W原则。分别设置了Primary模式和Neck模式下的线宽和线间距为(5mil,5mil),(3.15mil,3.15mil)。Neck模式主要用于从CPU芯片扇出时候的线宽线间距。设置好差分线约束规则后,将该约束规则应用到刚才建立的两个差分信号上,点击左边工作表选择区中的Eelctrical工作表下的Net-Routing在右边的工作表中找到刚才建立的三个差分对,在ReferencedElectriclCSet列中选择刚设置好的差分对约束规则DIFF_PAIR,如图4.15所示。图4.15将差分对约束规则应用到差分对上4.2.4CPU与DDR内存芯片走线约束规则CPU与DDR内存之间的信号速度都很高,对信号完整性要求很高,需要对时序严格的匹配,以满足信号波形的完整性。布线要求如下:(1)DDR时钟线,要求差分布线,并要求精确控制差分对的走线等长误差,控制在20mil以内。由于DDR内存使用两片,所以时钟线走线要采用T形或者Y形拓扑结构。阻抗控制在100Ω,长度比地址线长。(2)DDR数据线,CPU的数据总线宽度为32位,使用两片16位的DDR内存与之连接,所以然CPU的数据线为分两组,DATA0-DATA15,DQS0、DQS1,DQM0、DQM1为一组;DATA16-DATA31,DQS2、DQS3,DQM2、DQM3为一组。两组的所有信号线需要严格等长匹配,误差控制在50mil以内。由于布线密度大空间有限,信号间距采用1W原则(线边到线边),如果空间足够应选择3W原则,DDR数据线与其它的信号线必需要足够的间距,至少要保证3W的间距。阻抗控制在60Ω以内。(3)DDR地址线与其它控制线,DDR地址线与其它控制线为一组,需严格等长匹配,误差控制在100mil以内,走线长度比DDR数据线长。采用T形或者Y形拓