原创 【转】ALLEGRO 约束规则设置步骤1

2010-11-13 09:04 1902 4 4 分类: PCB
本文是我对约束规则设置方面的一些理解,希望对新手能有所帮助。由于本人水平有限,错误之处难免,希望大家不吝赐教! 
 
        在进行高速布线时,一般都需要进行线长匹配,这时我们就需要设置好 constraint 规则,并将这些规则分配到各类 net group 上。下面以 ddr为例,具体说明这些约束设置的具体步骤。

1. 布线要求
DDR 时钟:  线宽 10mil,内部间距 5mil,外部间距30mil,要求差分布线,必需精确匹配差分对走线误差,允许在+20mil 以内
DDR 地址、片选及其他控制线:线宽 5mil,内部间距 15mil,外部间距 20mil,应走成菊花链状拓扑,可比 ddrclk 线长 1000-2500mil,绝对不能短
DDR 数据线,ddrdqs,ddrdm线:线宽 5mil,内部间距 15mil,外部间距 20mil,最好在同一层布线。数据线与时钟线的线长差控制在 50mil 内。
 
2. 根据上述要求,我们在 allegro 中设置不同的约束
针对线宽(physical),我们只需要设置 3 个约束:DDR_CLK, DDR_ADDR, DDR_DATA 
 
设置好了上述约束之后,我们就可以将这些约束添加到 net上了。点击 physical rule set中的 attach……,再点击右边控制面板中的 more,

 
弹出对话框 
 
如上图所示,找到 ckn0和 ckp0,点击 apply,则弹出


 
选中左边列表中的NET_PHYSICAL_TYPE,  在右边空格内输入DDR_CLK,  点击apply,弹出 
 
即这两个 net已经添加上了 NET_PHYSICAL_TYPE 属性,且值为 DDR_CLK.
类似的,可以将 DDR 数据线,数据选通线和数据屏蔽线的 NET_PHYSICAL_TYPE 设为 DDR_DATA, DDR 地址线,片选线,和其他控制线的 NET_PHYSICAL_TYPE 设为DDR_ADDR.
上述步骤完成后,我们就要将已经设好的约束分配到这些 net group 上。
如下图点击 assignment table……


 
弹出对话框 
 
如下图所示,我们对不同的信号组选择各自的 physical 约束 
 


有人可能会问,为什么你这还有 area0,area1 啊?这是因为你的这些约束有的地方不可能达到的,比如在 bga 封装的 cpu 内,你引线出来,线间距不可能达到 30,20 甚至 10个 mil。在这些地方,如果你也按照这个约束那么你的 pcb 中的 drc 就不可能消的掉。这时一个解决办法就是把这些地方划为一个 room,然后给他加上 room 属性(即为 room的名字 area0,1 等等)。针对这些 room内,设定合适的约束(同上)。
 
针对线间距,由于每个都分为组内间距和组外间距,所以共有 6 个约束:
DDR_CLK_INNER,DDR_CLK_OUTER,…………………………
我们只要对这六个约束设置 line to line 和 line to shape 就可以,分别按上述要求设置就可以了。 
 
剩下的步骤和 physical 中设置是一样的。不过这时 assignment table 变成了下面这样。


    

PARTNER CONTENT

文章评论0条评论)

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