ALLEGRO约束设置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ALLEGRO约束规则设置介绍
目录:
第一部分:差分对的约束设置 (1)
第二部分:非差分信号约束设置 (8)
第三部分:区域约束设置 (11)
第四部分:XNet等长设置 (12)
本文所有操作与设置均在Allegro PCB editor 15.5环境中进行。
第一部分:差分对的约束设置
下面我们将通过对LVDS差分对信号的约束设置分步骤的讲解各个设置过程,其约束条件如
步骤1:全局约束设置。
在PCB editor界面下,点击“Setup→Constraints”或点击图
标打开“Constraints Sys”窗口,将出现下图所示窗口。
点击“Set standard values”,弹出“Default values form”界面,在此可设置默认值,且窗口中所有设置值各自分属于spacing rule 和Physical rule 中名为“Default”的约束集。
此处我们取默认值。
图1
下面步骤2-步骤4为Physical(Line/vias)rule物理特性(线宽和过孔)约束设置过程步骤2:线宽约束设置。
点击“Physical(Line/vias)rule set→set values”,在出现的窗口上方空白处填入新约束名称,如“LVDS_SIG”,然后点击“ADD”,新的约束就产生了。
如果需要设置这是某一层的约束,还要在“subclass”中选择相应的层面。
接下来就在相应栏填入需要的值。
如下图所示:
图2
如果还有其它信号的线宽要求,请重复上述步骤。
Min line width:最小线宽
Max line width:最大线宽,填0=∞
Min neck width:Neck 模式最小线宽
Max neck length:Neck 模式最大走线长度
DiffPair primary gap:首选差分间距(单端线可不填)
DiffPair neck gap:Neck 模式差分间距(单端线可不填)
过孔规格在“Via list property”中设定,一般设定在默认约束规则下。
在左侧数据库可用 via 列表中点击所需规格钻孔,右侧“Current via list”就会显示选中钻孔,可多选。
步骤3:绑定约束类型。
点击“Physical(Line/vias)rule set→Attach property”后可以直接框选板上各 Net 来选取,也可以点击右侧的more,在弹出的“Find by Name or Property”选择框中选取。
“Name filter”处填写要绑定的Net 名,“?”可以代替任意一个字符,“*”可以代替任意长字符,如我们要给 LVDS 差分线添加“LVDS”的
“Net_Physical_Type”属性,就可以输入“LVDS*”,就可以将所有LVDS的Net 过滤出来,如图:
图3
点击“All”选定net,点击“Apply”,出现“Edit Property”窗后,在左侧下拉选项中选择约束类型“Net_Physical_Type”,然后在右侧相应内容后填入约束名称“LVDS”,点击“Apply”,这样就完成了约束类型绑定,如图:
图4
图5
步骤4:约束规则分配。
点击“Physical(Line/vias)rule set→Assignment table”出现约束规则分配列表,分配不同情形下适用怎样的规则。
Physical rule的约束分配列表如下:
图6
第一列“Net Physical Property”:在步骤3“Attach property”中绑定的约束类型第二列“Area Property ”:约束绑定区域,在第三部分介绍。
第三列“Physical Constraint Set”:在步骤2“Set values”中设置的约束特征值关于约束绑定区域我们以后再说,那么这三行的意思就是:
绑定约束“NO_Type”的信号在“NO_Type”区域内应用Physical 约束“DEFAULT”
绑定约束“LVDS”的信号在“NO_Type”区域内应用Physical 约束“LVDS_SIG”
下面步骤5-步骤7为“Spacing rule”间距约束设置过程
步骤5:点击“Spacing rule→Set values”设置约束特征值。
由于LVDS差分对要求线间距为7mil,所以我们在窗口上方空白处填入新约束名称“SPACE_7”,然后点击“ADD”,新的约束就产生了,在对应的各个距离内填上相应的数值即可。
如下图所示:
图7
步骤6:点击“Spacing rule →Attach property”绑定约束类型。
Spacing rule 的绑定约束类型的操作和Physical rule 设置基本相同。
选取 LVDS 信号绑定约束类型“LVDS_SPACE”,如图:
图8
图9
步骤7:点击“Spacing rule →Assignment table”进行约束规则分配。
Spacing rule 的约束分配列表如下:
图10
上图中三行的意思是(关于约束绑定区域第三部分会有介绍):
绑定Spacing 约束“No_Type”的信号和绑定Spacing 约束“No_Type”的信号在“No_Type”区域内应用Spacing 约束“DEFAULT”
绑定Spacing 约束“LVDS_SPACE”的信号和绑定Spacing 约束“No_Type”的信号在“No_Type”区域内应用Spacing 约束“SPACE_7”
绑定Spacing 约束“LVDS_SPACE”的信号和绑定Spacing 约束“LVDS_SPACE”的信号在“No_Type”区域内应用Spacing约束“SPACE_7”
下面步骤8到步骤10为差分对等长约束设置过程
步骤8:差分对配对。
点击“setup→electrical constraint spreadsheet…”或点击,打开Allegro constraint manager 窗口。
选择“net →Routing→Differential Pair”,选中LVDS_A0_P和LVDS_A0_N右击,在弹出的菜单中选择“create→differential pair”,如下图所示。
点击后会弹出“create differential pair”界面,在此界面就可以依次对所有差分对配对。
图11
图12
步骤9:建立ECSet。
在左边工作窗体选择区选择“Electrical Constraint Set→Routing →Differential Pair”。
在你的brd文件名(此处为unnamed)上右击→Create→Electrical CSet,在弹出的对话框中输入约束名,这里起名为“LVDS_LENGTH”,并在图示位置填入允许的长度差值75mil。
图13
如果需要对LVDS信号布线总长度设置约束,则在左边工作窗体选择区选择“Electrical Constraint Set→Routing→Total Etch Length”。
在此我们可以看到刚才新建的约束“LVDS_LENGTH”,在其后面的“Minimum Etch Length”和“Maximum Etch Length”中添加布线长度的最小和最大值,如图。
图14
步骤10:为差分对绑定ECSet。
打开“Net → Routing → Differential Pair”,在右侧可以看到已经配对的差分线,在“Electrical Cset References…”下单击,在弹出的对话框中选择刚才设置好的约束“LVDS_LENGTH”。
也可以一次填多对,按住左键拖曳选择多个,右键菜单选“Change…”。
这样就给差分线添加了长度约束“LVDS_LENGTH”。
如图:
图15
同理,在“Net → Routing → Total Etch Length → Electrical Cset References…”下添加“LVDS_LENGTH”约束。
设置好后就可以布线了。
在最上面的字段名称上及项目名、Net 名上,按下鼠标右键可以展开下拉菜单,其中的“Sort”可以将对象重新排序,“Analyze”可以立即执行分析,分析后各种颜色的图示如下,也就是常说的红绿灯。
Pass –分析的结果符合设定值。
Fail –分析的结果不符合设定值。
Analysis error –无法执行分析。
Directly set –字段的设定值是由使用者直接输入的
图16
提示:没有红绿灯的,请打开Setup→User Preferences…,展开左边Etch项,右边
allegro_dynam_timing 选择on 即可。
下面的一项allegro_dynam_timing_fixedpos是设置
红绿灯位置锁定还是跟着光标跑的。
设置好后,还要在“constraint manager”窗口中,点
击“anslysis→analysis modes”,在弹出的界面中打开相应的 DRC 检查项即可,如下图
图17
第二部分:非差分信号约束设置
非差分信号的约束设置与差分信号的约束设置大致过程相同。
步骤1:全局约束设置。
设置过程同“第一部分:差分对约束设置/步骤1”,取默认值即可。
下面步骤2-步骤4为Physical(Line/vias)rule物理特性(线宽和过孔)约束设置过程步骤2:线宽约束设置。
设置过程同“第一部分:差分对约束设置/步骤2”。
此处线宽约束命名为“VGA_SIG”。
如下图所示:
图18
步骤3:绑定约束类型。
设置过程同“第一部分:差分对约束设置/步骤3”。
此处
“Net_Physical_Type”命名为“VGA”。
如图:
图19
步骤4:约束规则分配。
设置过程同“第一部分:差分对约束设置/步骤4”。
图20
下面步骤5-步骤7为“Spacing rule”间距约束设置过程
步骤5:设置约束特征值。
设置过程同“第一部分:差分对约束设置/步骤5”。
VGA 信号间距要求20mil,因此此处约束命名为“SPACE_20”。
如下图所示:
图21
步骤6:绑定约束类型。
设置过程同“第一部分:差分对约束设置/步骤6”。
选取 VGA 信号绑定约束类型“VGA_SPACE”,如图:
图22
步骤7:约束规则分配。
设置过程同“第一部分:差分对约束设置/步骤7”。
图23
步骤8:等长约束设置。
点击“setup→electrical constraint spreadsheet…”或点击,打开Allegro constraint manager 窗口。
在左边工作窗体选择区选择“NET→Routing→Relative PropagationDelay”。
在主窗体利用Ctrl、Shift 键,将 VGA_BLUE/VGA_GREEN/VGA_RED三根线全部选定,“右击→Create→Match”,在弹出的对话框中填入组名“VGA_RGB”。
这样就将这 3 根线加入到了一个group 中。
在Relative Delay下的Delte:Toleranc处填入长度约束200mil。
如图,
图24
填入时可以直接输入数字,不用输入单位。
可以在“VGA_RED”对应的输入框“右击→set as target”指定其中某根net为target。
如果需要对VGA的信号进行布线总长度约束设置,则在左边工作窗体选择区选择“Electrical Constraint Set→Routing→Total Etch Length”。
在此新建约束“VGA_LENGTH”(新建过程参考“第一部分:差分线约束设置/步骤9”),在其后面的“Minimum Etch Length”和“Maximum Etch Length”中添加布线长度的最小和最大值。
设定完以上约束就可以绕等长了,在右侧的Length上右击→Analyze,可以看到每根Net 的长度,当每个字段都以绿色显示时,就说明它们满足设置的长度约束了,如图:
图25
第三部分:区域约束设置
在PCB的布线过程中有些区域过于严格的约束是不可能达到的,比如在第二部分中的VGA 信号,在连接器管脚上是不可能达到20mil间距的。
这时一个解决办法就是把这些地方划为一个Area,然后给它加上Net_Physical_Type和Net_Spacing_Type属性。
针对这些Area ,设定合适的、比较宽松的约束值。
如果不设置,也就是没有区域约束的地方,就是“No-Type”。
具体做法是在第一和第二部分的约束设置后,布线开始前,增加以下步骤:
1、参考“第一部分/步骤2和步骤5”在“Set values”中各添加Physical 和Spacing 的约束值“VGA_CONN_AREA”,填上相对比较宽松的、合理的值。
2、在“Constraint areas”中选Add,(注意这时的绘图层为constraint area),选择好画shape 的工具,在工作区绘制shape。
如图:
图26
3、点击“Attach property,shapes”选刚才画的shape,绑定约束Net_Physical_Type 和Net_Spacing_Type。
绑定后shape属性如图:
图27
图28
增加上述约束区域后,我们就可以开始布线了。
在区域之外我们执行的是前面设置的约束条件VGA_SIG和VGA_SPACE,当进入此区域后,则执行VGA_CONN_AREA的约束条件。
第四部分:XNet等长设置
我们把连续的几段由无源元件(如电阻,电容或电感)连接的net 合称为一段Xnet。
前面说的方法只能对Net 设置等长,既差分对的每根线、group中的每根线,操作的对象都是Net。
而下面这种情况中要求Net1A + Net1B = Net2A + Net2B,那我们如何设置呢?
图29
步骤如下:
1、在Allegro PCB editor中点击菜单“Analyze→SI/EMI Sim→Model…”,在弹出来的提示界面中直接点击“Yes”即可,然后出现下面的Model设置窗体:
图30
2、直接在“DevType Value/Refdes”中选择要设定Model 的器件或直接在板子上点选要设置Model的器件。
如果所选器件是电阻、电容、电感之类的双引脚元件,那么直接点“Auto Setup”,出现下图所示内容,然后点击“OK”即可。
如果是多引脚器件则请参考相应工具
书,此处暂不做介绍。
图31
3、点击“setup/electrical constraint spreadsheet…”或点击,进入约束管理器Constraint Manager 的“Net→Routing→Relative Propagation Delay”,在右边就会显示整块板子所有的Net 或Xnet。
建立需要等长的Pin Pair,在需要建立Pin Pair 的Xnet 上右击→Create
→Pin Pair:
图32
4、选择起始Pin 和结束Pin:
图33
这一步的目的是指定一个XNet 等长时计算长度的起始Pin 和结束Pin。
如上图中,SIG_A1长度值就是J2.11-R1.1和R1.2-J3.11的长度和。
设好Pin Pair 之后,就可以用设置一般的Net 等长的方法来设置XNet 的等长,不同的只是将XNet 的Pin Pair 选定添加到一个等长组里。
如图:
图34
图35
5、在新建组“SIG_XNET”的Relative Delay/Delte:Toleranc处填入长度约束20mil。
如下图:
图36
至此,XNET的约束就设置好了,下面可以布线了。