Allegro16.6约束管理器及使用示例

1 约束管理器

约束管理器强制执行objects的优先顺序,最顶层的是System,最底层的是pin-pair。为顶层对象指定的约束会被底层的对象继承,为底层对象指定的同样的约束优先级高于从上层继承的约束。尽量在高层次指定约束,层次关系如下:

1.1 名词解释 1.1.1 pin-pair

Pin-Pair代表一对逻辑连接的管脚,一般是驱动和接收。Pin-Pairs 可能不是直接连接的,但是肯定存在于同一个net 或者 Xnet(所谓Xnet即网络的中间可能串接电阻或者接插件,比如图2-3 中的U1.8到U3.8的连接中间经过了一个电阻,即Xnet)

1.1.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)或者相对于组内的一个明确的目标。如果 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为数据线,需要作等长处理

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 :NECKMODE模式下默认内间距差分对Neck模式下的线间距(边到边间距),用于差分对走线在布线密集区域时切换到Neck值。(NECK 下的线宽用于NECK MODE下的线宽,一般在 bga 下面走线的时候有时候两个管脚间距过小,需要使用NECKMODE ,走线时,鼠标右键,选择NECKMODE 即进入NECK模式。)

Neck Width :NECKMODE模式下默认线宽差分对Neck模式下的线宽,用于差分对走线在布线密集区域时切换到Neck值;

Dynamic Phase :动态相位检查,在16.3版本新加入的功能。对差分对路径中每个转角之间造成的路径差异进行检查。如在整个差分对网络中,正向与反向之间的走线差距不能超过“x mils”。如果整个路径中的某一个位置,发生了两个信号之间相位偏移超过了规定的“x mils”,这个误差必须在“y mils”范围内补偿回来。如下图x=20,y=600.设定约束时tolerance填入x值,max length填入y值。

Static Phase Tolerance :这个约束设置了两根差分线之间的差值,单位是mil或ns。设置了此项后,在走线时会实时的显示走线差,在绿灯时符合约束。

Uncoupled length :该约束限制了差分对的一对网络之间的不匹配长度。差分对刚刚从芯片出来的走线通常是不耦合的,“gather contrlo”可以设置为“ignore(忽略)”和“include(包括)”,意思为在计算不匹配长度时是否包含差分对刚从芯片出来的这段不耦合的线长。 然后在Net ->routing -> Differential Pair中,这时差分对就可以选择刚才设置的规则了;选中规则布线后如下图

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4