本人日前画一块8层的PCB板,希望在顶、底层的最小线间距为6mil,而在信号层的最小线间距为10mil。
于是按以下步骤设置最小间隔的布线规则,使用高级查询来生成条件:
Clearance_1
约束
6mil
第一个匹配对象位置
OnLayer('TopLayer') and OnLayer('BottomLayer')
第二个匹配对象位置
OnLayer('TopLayer') and OnLayer('BottomLayer')
Clearance_2
约束
10mil
第一个匹配对象位置
OnLayer('Singal_A') and OnLayer('Singal_B') and OnLayer('Singal_C')
第二个匹配对象位置
OnLayer('Singal_A') and OnLayer('Singal_B') and OnLayer('Singal_C')
设定好约束后我布线,结果布线的结果让我非常郁闷,顶层的线和线之间不要说间隔小于6mil不提示违规,甚至靠在一起也没有提示,其他层也如此。
于是我右仔细研究了布线规则,终于发现问题所在:
OnLayer('TopLayer') and OnLayer('BottomLayer') 这匹配位置条件,按我的理解是指顶层的线和地层的线的之间的间隔,而不是按我自己的意思来约束顶层和顶层,底层和底层的线;所以即使顶层的线是靠在一起了,但和底层的线的间隔只要大于6mil就不提示违规了,一切清楚了!
于是我就将最小间隔规则每一层定义一个,总共有5个规则,这样问题就解决了!