约束规则设置
约束规则作用:allegro设计软件优势是高速信号PCB设计,而高速信号需要 考虑信号完整性(信号需要等长)、差分信号等。当约束设置完成后,PCB工具会自动根据定义 的约束对设计进行检查,不合符约束的地方会用DRC Markers 标记出来。
操作步骤:
ⅰ.选择“Setup->Constraints->Constraint Manager”,启动约束管理器,或者在菜单面板上直接选择快捷键图标启动。
Allegro规则约束管理器快捷按钮
ⅱ.Allegro中规则分为两类:DefaultConstraint和Special Constraint。用户既可以修改默认规则,还可以创建新规则
ⅲ.约束设置方法:1 确定约束类型 2 创建或修改约束设置 3 分配约束
在PCB 设计中,设计规则主要包括: Electrical时序规则、物理规则、间距规则、相同网络名间距规则、properrties性能规则共4个部分。下面重点介绍以下3个规则设置。
8 x; T2 W3 f2 @
1. Physical物理规则条件设置
1 N N9 {' F% ~1 J) R1 ]- c
点选Physical Constraint Set 即可出现Default 的Physical 相关设定值,如Line Width线宽、Neck width..、过孔等(对于BGA封装元件,需要使用Region区域约束规则设置)。
Physical物理规则可以使用Defaul约束规则,也可以新建约束规则。
1) 设置Default约束规则:
2)新建约束规则方法:以新建电源 power为例说明
/ y, Z. f+ J2 G1 l
: T4 h' E# k/ }7 G6 x0 K8 q: W* {+ J. U; t* g# Y
3)设置约束参数:设置线宽、过孔等
线宽:一般设置Line Wdith min、Neck min Width
过孔:物理规则设置里面有一栏是Vias,点击即可设置,如下图所示
4)分配约束:
对于一般net线宽,使用默认DEFAULT线宽;而有特殊要求线宽单独设置。例如:电源相关net,先建立一个POWER的类,然后将所有电源相关net添加进去,一起设置线宽约束。
2 Spacing间距规则条件设置1、设置间距值约束规则进入约束管理器,单击 Spacing,再点击AllLayers,如下图所示。右边有一个DEFAULT 就是默认规则,我们可以修改其值。也支持定义特殊间距约束,点选Default按鼠标右键,执行Create-Spacing CSet。
1)line to line:根据3W原则,走线之间的间距不应小于两倍走线宽度。对于特殊的信号,如时钟走线,应适当增加走线的间距,至少为走线宽度的两倍,如果可以最好用地线隔离。
2)line to hole:可参考line to line原则
2)line to shape:可参考line to line原则
4)shape to shape:这个间距需要考虑两个shape之间电压差。电压差低于24V,不低于0.5mm。
2、对net设置间距约束
一般间距使用默认DEFAULT。对间距有特殊要求,建立新的间距规则,然后对其net分配该规则。
3 Electrical电气规则条件设置Electrical电气规则主要关注:差分信号约束规则、等长约束规则。下面以差分和等长为例说明:
3.1差分信号约束规则先说差分线相关参数
1、 Coupled Tolerance:两条差分线间距的误差值
2、 Min Line Spacing: 两条差分线 的最小间距
3、 Primay Gap: 两条差分线优先线间距(边到边间距)。
4、 Primary Width :差分线优先线宽
5、 Line Width:差分线的线宽(在Physical Constraint Set 设置)
6、 Neck Gap :差分对Neck模式下的线间距(边到边间距),用于差分对走线在布线密集区域时切换到Neck值。
7、 Neck Width:差分对Neck模式下的线宽,用于差分对走线在布线密集区域时切换到Neck值。
8、 Dynamic Phase:动态相位检查
9、 Static Phase Tolerance 这个约束设置了两根差分线之间线长差值,单位是mil或ns
10、Uncoupled length:该约束限制了差分对的一对网络之间的 不匹配长度。
设置步骤如下:
① 建立差分规则并设置参数:打开约束管理器,定位到Routing | Differential Pair下,如下图所示
参数设置,
② 建立差分对。以USB为例,选中DM和DP,点击Creat→DifferentialPair
③ 分配约束规则。
④ 打开差分对检查。执行Analyze-Analysis Modes,如下图,
Analyze分析差分线
3.2等长约束规则高速布线中等长设置是经常使用的约束规则,在Allegro中等长设置使用相对延时约束规则。在实际使用过程遇到:同一个Net(直接连接的)和 不同Net(XNet)情况。
我们把连续的几段由被动元件(如电阻,电容或电感)连接的net合称为一段Xnet.。Allegro中有两个常用的走线长度设置,PROPAGATION_DELAY,RELATIVE_ PROPAGATION_DELAY 都只能针对同一Net设置。
Xnet应用实例:
现在要求U1 到U2 的走线Net*A + Net*B等长,误差为+/-20Mil,最简单的方式就是分别设置Net*A等长和Net*B等长,误差各为+/-10Mil,这样是可以达到要求,不过会加大Layout工程师绕线的难度,因为可能Net*A部分空间比较大有足够的绕线空间,而Net*B部分没有空间绕线,所以就比较难达到要求。如果一种设置能把Net*A与Net*B相加,然后再做等长比对,这样就可以解决问题了,好的就是Allegro都早为这些问题考虑过了,只要把Net*A与Net*B设置为一个Xnet问题就解决一半了。
0 m# p- V/ \: J) l# J1、 同Net等长设置下面以我们板子上的DVP信号举例说明一下,原理图如下:
DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下。所以几个时钟和数据线需要做等长处理,i2c控制线可以不做处理。
即原理图中p3同u1的CMOS_D[0:7]、CMOS_XCLK、CMOS_PCLK、CMOS_HSYNC、CMOS_VSYNC等长。
第一步:设置引脚对(pin pair)。在约束管理器Electrical|Net |Routing|Relative Propagation Dleay界面下操作:
依次设置所有需要等长引脚。
第二步:创建match group。将所有设置等长的网络创建好的管脚对后,选中管脚对,右键选择create-match group。
第三步:设置等长相关参数。主要设置参数如下图所示
1)使能等长线的分析
2)设置等长基准线和+/-误差。下面以设置CMOS_XCLK为基准线,正负误差:0-50mil
参数说明:
1、Scope选择Global。Scope:可以选择Local和global。Local意为仅比较同一Net或XNet内的管脚对,Global意为比较同一Match Group内的所有管脚对。一般选择Global即可。
2、Pin delay:大多是在pin之间的延时不一致时,需要做一个补偿,那就需要设置pin delay,指的是IC包装内部的长度。需要在菜单Analyze -> Analysis Modes填入->Options。勾Analyze选PinDelay开启此功能。打开后,在计算线长时就会包括这段线长。另外pin delay下的Z Axis Delay指的是计算线长时是否考虑Via的长度,设置好了叠层参数后就会加上via的长度。
一般Pin delay忽略不计。
3、 Delta:tolerance:这项控制了match group内的线长差。单位有三种:ns,mil,%;单位%指以目标线的N%为公差。对已经走好的线,以最长值为目标线。
1)Delta指的是基准线比目标线长还是短,长则写入+delta值,短则写入-delta值,和目标线一样长则写入0,计算公差时的基准线便是目标线长加上delta值的结果。一般等长设置中,Delta为0。
对不满足约束的走线,显示“ED”错误,如图所示。
2) Tolerance值为于基准线的误差,是+/-误差。如果写50mil其实为+50/-50mil误差,实际为100mil的误差。一般设置等长时Delta为0,有特殊需要时可以考虑设置delta值。
注:如何修改等长线束中 基准线 方法如下:
2、设置Xnet等长。下面以我们板子上的MIPI信号举例说明一下,原理图如下:
通过之前的介绍要将上图共模电感两端的信号NET1+NET2设置为XNET即“CMOSA_SLVSC_1+CMOSA_SLVSC_”、“CMOSA_SLVS0_1+CMOSA_SLVS0_”、“CMOSA_SLVS1_1+CMOSA_SLVS1_”这三组差分信号线设置为XNET并做等长处理。
想要创建XNET,首先需要将三个共模电感添加ESpice模型。添加模型的过程就是创建XNET的过程。
一、创建XNET
① 在菜单栏中选择allegro->Analyze->Mode Assigment,打开Singal Model Assignment对话框,如下图如,
② 找到要设置模型的器件,可以在Refdes中输出你要创建Xnet模型的元器件,如下图,
③
选择器件点击>Create
Model,如下图
如上图以此点击;
之后弹出下图,第一个MODE name 是你创建模型的名字,可以自己设置,也可以用默认;VAlue必须是不为0的任意数,之后点击OK。
最后点击OK后就会弹出如下图,XNET就设置完毕了;
重复到下面的页面后,点击Auto Setup,系统会把原理图中所有的带元器件的建立Xnet模型;
二、创建Pin Pair
由于 XNET不仅仅是发送-接收端的两个pin的链接,中间还有其他器件的pin脚,因此设置XNET等长需要首先创建Pin Pair,即要设置的等长是Xnet中的哪两个引脚的连接。下图能更好的的理解Pin Pair的意义,
① 进入Constraint Manager,以刚创建好的CMOSA_SLVSC_1N为例创建Pin Pair,如下图,
分别选择发送和接收的引脚,点击“OK”就创建好了Pin Pair,如下图,
依次将所需的信号分别创建好Pin Pair,如下图,
② 建立Match Group,并调整等长。(同,上面“同NET”的方法一样)
调整完成后的PCB如下图,P1连接器上面的3组差分信号线经过共模电感后到达U5芯片的管脚。