1、Allegro166约束管理系统器及使用示例1 约束管理器约束管理器强制执行objects的优先顺序,最顶层的是System,最底层的是pin-pair。为顶层对象指定的约束会被底层的对象继承,为底层对象指定的同样的约束优先级高于从上层继承的约束。尽量在高层次指定约束,层次关系如下:1.1 名词解释1.1.1 pin-pairPin-Pair代表一对逻辑连接的管脚,一般是驱动和接收。Pin-Pairs 可能不是直接连接的,但是肯定存在于同一个net 或者 Xnet(所谓Xnet即网络的中间可能串接电阻或者接插件,比如图2-3 中的U1.8到U3.8的连接中间经过了一个电阻,即Xnet)1.1.
2、2 Nets和Xnets请见图2-4 很容易理解Cadence 的Nets 和Xnets的区别。所谓nets 就是从一个管脚到其他管脚的电子连接。如果net 的中间串了无源的、分立的器件,比如电阻、电容或者电感,那么在数据库中每个网络段通过一个独立的net来表示。约束管理器解释这些网络段作为相邻的扩展的网络或者Xnet,Xnets在多板连接的结构中也可以贯穿连接器和电缆。可以将Nets 和Xnets与ECSets 联系起来。1.1.3 Match Groups Match Group 是nets,Xnets或者pin-pairs 的集合,此集合一定要都匹配(delay 或者length)或者相
3、对于组的一个明确的目标。如果 delta 值没有定义,组的所有成员都将是绝对匹配的,并允许有一定的偏差。如果定义了delta 值,那么组所有成员将相对匹配于明确的目标网络。1.2 在线检查设置首先在约束管理器中需要进行以下设置Analyze - Analysis Modes这样在布线后,在相应的地方都会显示线长或约束相差值;如下图1.3 示例通过一个实例来理解约束管理器U1看作是MCU,U2为DDR,ADDR0-3为地址线,需要作等长处理;CLK为时钟线,差分处理;U3,U4为连接同一个MCU的DDR;地址线是复用的,设置通过T型网络连接;需要作等长处理U5为DDR,DDR_DQ0-3为数据线
4、,需要作等长处理1.3.1 差分对约束即上图中的DDR_CLKP,DDR_CLKN设置 Electrical - Electrical Constraint Set - Differential Pair在Object的Name下方Project右键Create - Electrical CSet;并输入参数差分对约束参数主要有以下几个:Min line spacing :间距最小线距,若实际走线间距小于这个值,DRC就会出错。 Primary Gap :默认间距,差分对最优先线间距(边到边间距)。Primary width :默认线宽,差分对最优先线宽。Neck Gap : NECK MOD
5、E模式下默认间距差分对Neck模式下的线间距(边到边间距),用于差分对走线在布线密集区域时切换到Neck值。(NECK 下的线宽用于NECK MODE下的线宽,一般在 bga 下面走线的时候有时候两个管脚间距过小,需要使用NECK MODE ,走线时,鼠标右键,选择NECK MODE 即进入NECK模式。)Neck Width :NECK MODE 模式下默认线宽差分对Neck模式下的线宽,用于差分对走线在布线密集区域时切换到Neck值;Dynamic Phase :动态相位检查,在16.3版本新加入的功能。对差分对路径中每个转角之间造成的路径差异进行检查。如在整个差分对网络中,正向与反向之间
6、的走线差距不能超过“x mils”。如果整个路径中的某一个位置,发生了两个信号之间相位偏移超过了规定的“x mils”,这个误差必须在“y mils”围补偿回来。如下图x=20,y=600.设定约束时tolerance填入x值,max length填入y值。Static Phase Tolerance :这个约束设置了两根差分线之间的差值,单位是mil或ns。设置了此项后,在走线时会实时的显示走线差,在绿灯时符合约束。Uncoupled length :该约束限制了差分对的一对网络之间的不匹配长度。差分对刚刚从芯片出来的走线通常是不耦合的,“gather contrlo”可以设置为“ignor
7、e(忽略)”和“include(包括)”,意思为在计算不匹配长度时是否包含差分对刚从芯片出来的这段不耦合的线长。然后在Net - routing - Differential Pair中,这时差分对就可以选择刚才设置的规则了;选中规则布线后如下图1.3.2 设置不过电阻的NET等长即上图中的DDR_DQ0-3,布线要求,DQ1-3以DQ0为参考,线长在10mil设置 Electrical - Net - Routing - Relative Propagation Delay选中所需NET,右键Create - Match Groups,弹出的对话框中命名约束条件并确定;若是先已经创建了MG_
8、DQGROUP,需要添加其他的NET,选中需要添加的NET,右键,Add to - Match Groups;选择已有的约束条件添加;在刚才设置的网络组中,可以选择其中的一根作为参考,在对应的【Delta:tolerance】栏中右键 Set as target,即可设置为参考网络;假如不设置参考网络,则所有的网络都要匹配到+tolerance;【Delta:tolerance】 100mil:10mil 假设参考线1000mil,则线围为1000+100 加减10mil;即9901110mil -100mil:10mil 假设参考线1000mil,则线围为1000-100 加减10mil;8
9、90990mil 布线后如图:1.3.3 设置过电阻的XNET等长即上图中的ADDR0-3,布线要求,ADDR1-3以ADDR0为参考,线长在10mil设置XNetAnalyze - Model Assigment;弹出对话框,可以选择某种电阻,也可以选择某个电阻;现在选中某种电阻;Create - Model;弹出对话框默认确定,在弹出如下对话框;因为在原理图中,ADDR3_A 和 ADDR3连接排阻的1和8;类推,所以是以1 8 2 6.对应;如下图,ADDR3_A和ADDR3两条NET合并成一条XNRT;创建Pin-Pair在ADDR0上右键 Create - Pin-Pair;选中电阻
10、两端MCU和DDR的管脚腿创建完后如下图创建Match Group选中上面的4个PPr,右键 Create - Match Group;接下来就和 设置不过电阻的NET等长 的步骤一样了;布线之后如下图1.3.4 设置T型等长1.3.4.1 在PCB和约束管理器中创建T型节点在PCB菜单栏中选中 Logic - Net Schedule,然后选中要设置的T型网络的鼠线,在选中要设置网络的其中一个引脚,右键Insert T 命令,在合适的地方左键放置T点,然后选其他的引脚再选中刚放置的T点,依次设置完该T型网络上的所有的节点;删除某个T节点,PCB菜单栏中选中Logic - Net Schedu
11、le,选中网络右键Unschedule Net,然后右键Done;在约束管理器中,右键刚才设置的那根Net,Create - Electrical CSet,命名,注意勾选Copy Constraints From;然后其他网络就可以使用这个规则了。然后在其他需要设置T型网络的NET中Referenced Electrical Cset中选中刚才设置的规则;如下图1.3.4.2 在SigXplorer和约束管理器中创建Electrical - Net - Routing - Wiring选中需要设置T型网络的net,右键选中SigXplorer,进入界面,重新设置拓扑结果之后,注意上面有元件的
12、编号,Set - Constraints ; 弹出界面,在Wiring中Verify Schedule 中选中YSE,单击OK;File Update Constraint Manager;到如下的拓扑结构:然后在其他需要设置T型网络的NET中Referenced Electrical Cset中选中刚才设置的规则然后通过Pin-Pair的方式设置等长1.3.4.3 设置线长选中Prop Delay标签,设置方法,在Pins/Tees中先选中T.2再选U4.4,在Rule Type 中选择Length ,分别在min length ,max length 中输入500,510;依次把所有的都设置好;上面解释:从从T.2到U4.4的线长为500510mil;设置相对延时: 选中Rel Prop Delay标签,方法:先在【Rule Editing】栏点击 New 按钮, 在【Pins/Tees 】栏点击R4.2再点击U4.4 注意【Scope】栏为“Local”, 在【Delta Type】栏,选择“None”, 在【Tol Type】栏,选择“Length ”, 在【Tolerance 】栏,输入“20”, 点击 ADD按钮。按上面的方法设置其余三线;单击OK;File Update Constraint Manager;注意:。好像走线有过孔时很麻烦,拓扑结构改变?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1