Allegro中设置等长规则的通用方法在当今高速PCB设计中,一组走线的等长越来越重要。Allegro为工程师提供了功能强大的ConstrainManager,即约束管理器,工程师可以很方便地进行各种规则的设定,包括等长规则。在无线时代早前发表的《DDR布线规则与过程》一文中,已经给出了一种设置等长规则的方法,但这种方法具有一定的局限性,一旦某条网络的拓补不符合规律,将出现异常。本文以朋友设计的EMMC小卡为例,给出一种相对通用的等长规则设置方法,希望对读者有帮助。1.本例中需要实现PCI-e金手指到EMMC芯片等长,包括D0-D7,CLK,CMD这10条网络。查看各条网络,确认是否存在串联匹配电阻。本例中,仅在时钟线上存在,如下图的高亮器件。2.为串联匹配电阻分配仿真模型,这样做的目的只有一个:建立Xnet。因为我们要实现的是金手指到达EMMC芯片的引脚等长,所以必须将串联匹配电阻的两端网络视为同一条。点击Analyze—ModelAssignment,如下图,3.在16.6版本中会弹出一个对话框,就是一些设计错误,直接点击IgnoreErrors下面的“All”,然后再点击“OK”即可,如下图。4.勾选右侧Find窗口中的Symbols,如下图。5.点击时钟线上的串联匹配电阻R9,会出现SignalModelAssignment的界面,如下图。6.点击“CreateModel,如下图。7.在弹出的CreateDeviceModel对话框中点击“OK”,如下图。8.在弹出的CreateESpiceDeviceModel对话框中点击“OK”,如下图。9.此时返回SignalModelAssignment界面,发现R9已具备Model,如下图。10.点击ShowElement快捷按钮,选中EMMCCLK网络,发现已具备Xnet,如下图。11.接下来就是创建MatchGroup,即等长组。点击ConstrainManager图标,在弹出的ConstrainManager界面中,点击左侧的Electrical类别下的RelativePropagationDelay,右侧出现相对传输延迟规则,可以看到EMMCCLK网络作为Xnet出现在其中,如下图。12.在进行这步操作之前,Alex再次强调我们要实现金手指到EMMC芯片引脚的等长,即pin到pin的等长,每条网络可以视为一对PinPair。在任意一条网络上点击右键CreatePinPair,如下图。13.在弹出的CreatePinPairsofMMC_DATA0对话框中分别选择需要等长的pin,然后点击OK,如下图。当然,我们选择金手指(J1)和EMMC芯片(U1)的引脚,而不是上拉电阻(R8)。14.依次处理所有需要等长的网络,完成后如下图所示。15.在任意一对pinpairs上点击右键—Create—MatchGroup,如下图。16.在弹出的对话框中输入名称EMMC,然后点击OK,如下图。17.按住Ctrl,依次选择需要等长的pinpair,然后点击右键—Addto—MatchGroup,如下图。18.在弹出的对话框中点击下拉箭头选择刚刚创建的EMMC,如下图。19.回到ConstrainManager界面,可以看到MatchGroup已正确建立,如下图。20.但默认是以时间做等长单位,不符合一般习惯,改为mil。点击“ns”,在弹出的对话框中选择“mil”,如下图。21.在MGrp中的EMMC名称所在一行与Delta:Tolerance所在一列的交叉位置输入等长条件“0:25”,即Delta为0,Tolerance为25,此时看到已变成mil单位,如下图。22.在MGrp中的EMMC名称上面点击右键—Analyze,看到当前的等长状态。至此,EMMC等长设置完成,接下来就是绕等长了,不是本文讨论的内容。本文的核心思想是使用PinPiars建立等长规则,这种方法相对通用,在Allegro中应用广泛。在这些年使用Allegro进行PCB设计的过程中,感受很深的一点就是:如果想很好地掌握Allegro,就必须多思考,多练习,举一反三。