分享

PCB设计Allegro约束规则设置步骤

 carl_xie12 2020-06-22

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

1. PCB设计布线要求 
DDR 时钟:  线宽 10mil,内部间距 5mil,外部间距30mil,要求差分PCB设计布线,必需精确匹配差分对走线误差,允许在+20mil 以内 
DDR 地址、片选及其他控制线:线宽 5mil,内部间距 15mil,外部间距 20mil,应走成菊花链状拓扑,可比 ddrclk 线长 1000-2500mil,绝对不能短 
DDR 数据线,ddrdqs,ddrdm线:线宽 5mil,内部间距 15mil,外部间距 20mil,最好在同一层PCB设计布线。数据线与时钟线的线长差控制在 50mil 内。 
 
2. 根据上述要求,我们在 PCB设计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 变成了下面这样。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多