原创 Making Constraints In Allegro

2010-2-10 21:47 4837 3 3 分类: PCB


约束规则的制定与约束网络的分配


 


差分约束规则:


差分线其实可以看做是特殊的一组网络,一对差分网络包括两条线,从物理约束规则方面来考虑,需要对它其中的每一条的走线宽度进行约束,还要对两条差分线之间的间距进行约束(这里的线间距和Spacing不是同一概念,它是指差分网络内部的两根信号线直接的间距),差分线同其他网络之间要定义Spacing约束规则。从电气约束规则方面来看,差分对的容差值要设置,最小线间距等等值需要设置。


 



点击看大图


上图中的红色走线是SIG1层的差分走线,它的线宽是0.18mm,差分线之间的Gap0.18mm。下图是物理约束DIFFSIG1层的参数设置,发现最小线宽是0.13mmGap0.18mm,显然走线时差分线没有遵循物理约束规则。


 


d53e990f-809b-4ef8-b4b3-6652f04903bb.GIF


 


电气约束规则DIFF中的Primary line width值为0.18mm,覆盖掉了物理约束规则中的最小线宽。鉴于本次设计要求,对差分线阻抗做阻抗控制,对于不同的叠层应采用不同的线宽,所以这里的电气约束规则中的Line width值不用设置。


 


46d63dc0-cdb1-48dd-8a0b-5d7a88eacb5f.GIF


 


 


一般要求情况下对差分线之间是不做等长约束的。但也有特殊情况,例如差分网络DiffA(包括DiffA+DiffA-),他们本身要遵循差分物理约束规则和差分电气约束规则,同时还需要和其他网络做等长约束,这时候只要在CMconstraints Manager)中对两个网络定义两种约束规则即可


 


 


等长约束规则:


根据设计要求,分析后决定怎么做等长约束,比如下图所示的要求GroupAGroupB组内做等长约束,两组都为单个Net,如果分别做等长显然增加了绕线的难度,这种要求相对较高,实现较为困难。两组内部网络分别等长,这种结果决定了两组网络之间的Xnet等长。从而选择对Xnet网络设定等长约束,实现较为容易,如果要求不是太高这种方案可以实现。


如果要求Xnet等长,当然我们可以对其中的单个Net分别做等长约束,单个Net等长后,Xnet显然就等长了。这种情况是要求比较低,但操作比较高。


上述两种情况就是对设计要求和实际操作的明确,因为既对单个网络设定等长约束条件又对Xnet设定等长,从理论上来说也是没有必要的,设定了Xnet之后,单个网络就不存在了,虽然在操作上是可以实现的,可以从一组Xnet中建立三对Match Group,但似乎显得多余。


 



点击看大图


决定做单个网络等长就可以直接进入CM中进行设置了,Xnet设置较简单,下面主要介绍一下Xnet的等长约束设置。首先要显示所有目标网络连接,具体的操作是打开Constraint Manager,在Allegro中执行Show Rats --Net命令后进入CM中网络后右击选中SelectAllegro就显示目标网络的鼠线了。


 



点击看大图


显示鼠线只是为了便于查看,可以很方便的查找到需要分配模型的分立元件,在Allegro界面进入Signal Model Assignment,给分立元件分配模型,选中DevType,单击Create Model


 



点击看大图


选中Create ESpiceDevice Model后单击OK


 


d8d8f80f-7fae-42e7-8a5b-d416ba757d97.GIF


 


Single Pins中输入引脚排列方式,1 8 2 7 3 6 4 5,代表有4个电阻,引脚18是一个电阻的两个Pin,依次类推


 



点击看大图


分配好模型后的界面


 



点击看大图


这样,Xnet就已经设置成功了。进入CM,选中Net-Routing-Relative Propagation Delay,把具有相同拓扑结构的网络生成一个BUS,并给这个BUS赋予一个名称DDR


 


 


cc1f3fff-d81f-48bd-a0f1-06354f5d9347.GIF


 


 



点击看大图


右击DDR总线,赋予总线电气约束集名称


 


0a14d3e2-0f31-43de-83ed-9bd18b38d511.GIF


 


 


5207e09f-b64a-4f19-9069-225a1957d4e3.GIF


 


设置完成后BUS中的Xnet都具有DDR约束集属性


 


a1cfb31a-5d19-4f8d-811c-829c5adaf203.GIF


 


右击DDR总线名称,选择SigXplorer,进入拓扑结构编辑器


 


bd0097b1-f3c9-47b1-a0d9-2a0dac3182c4.GIF


 


 



点击看大图


一般打开的拓扑结构是DDR总线下第一个Xnet的拓扑,对其进行参数设置,在SigXplorer中执行Set-Constraints。在界面中选择Rel Prop Delay


 



点击看大图参数设置完成后,回到SigXplorer界面,单击图示按钮更新CM


 



点击看大图


更新完成后关闭SigXplorer,在弹出的对话框中选择YES即可。


 


a4efe794-24c4-4712-95a1-9fc204ad4bab.GIF


 


这时CM中有三处发生变化,首先是约束集中的DDR有了参数设置


 



点击看大图


然后是所有遵循DDR约束集的Xnet自动生成了Pin Pair,这一结果是建立在所有的Xnet具有相同的拓扑结构基础上的,如果DDR总线中的Xnet具有不统一的拓扑结果,执行到这里会出现两种情况,一种就是和第一个Xnet(图中是DQM0)具有同样拓扑结果的Xnet自动生成了Pin Pair,与之不同拓扑结果的Xnet的约束集名称DDR会变成红色,并且没有Pin Pair生成,导致错误,这时应该删除此Xnet,或者Clear约束集Ref,然后重新建立约束集,并重复以上工作,对其拓扑结构中的约束参数进行设置。


 


eb5f8bb4-d05f-4cb6-831b-dbf0893c83e8.GIF


 


最后是所有的Pin Pair自动生成了Match Group,名称为我们在前面Rule Edit中新建的Rule Name


 



点击看大图


总线中的网络参数设置完成之后,还有其他的Xnet,比如一些地址总线,控制总线等等,需要一起做等长约束,上面已经介绍了一种处理方法。下面再介绍一种方法。相同拓扑结果的网络放在一起做等长比较方便,因为软件可以自动生成Pin Pair ,并且可以自动生成Match Group。不同网络拓扑结构的网络需要单独做约束规则。


 


右键Xnet,生成一个新的约束Ref


 



点击看大图


进入SigXplorer界面,对约束参数进行设置,唯一注意的是这里的Rule Name仍然命名为DDR,根据需要建立Pin Pair


 



点击看大图


设置完毕更新CM后发现Xnet CDS1的两组Pin Pair已经被加载到Match Group中了,成功实现了与之前设置BUS中的Pin Pair之间的等长约束。


 


ac8e648e-56d7-443c-b2da-cb05e6ebbd89.GIF


 


其实到这里已经可以收工了,但为了便于查阅,通常会把所有需要做等长的Xnet放在同一个总线目录下面


 



点击看大图


从下拉列表中选择DDR即可


84c6f5e5-afb4-42a6-ab52-77467aa6dc0d.GIF


 


这样CDS1就被成功加载到DDR总线中


 


0822da96-33f4-4e99-ad7d-3d2a0b04e636.GIF


 


自此,等长约束规则作成,即可进行布线工作

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条