约束条件可以用数学表达式的形式输入,包含常数、各种运算符、向量以及其它设计约束,为设计人员提供一个参数化规则驱动系统。约束条件甚至能以查表的形式输入,将它们存放在pcb或原理图的设计文件中。pcb布线、铜箔区位置及布局工具都要遵照这些条件生成的约束规则,DRC则验证整个设计是否都符合这些约束,包括线宽、间隔及空间方面的要求(如面积和高度限制)等。 一个很简单的例子是上升时间约束,一般将其设置为常数1.5ns,根据此条件就可得出最大走线长度的约束,即用5,800mil/ns乘以上升时间1.5ns。稍为复杂一点的例子是元件间隔,它通过将检测角的正切值乘以器件高度来决定,该算式可算出元件最小间隔值。 分级管理 参数化约束的一个主要的好处在于它能分级进行处理。例如全局线宽规则可作为一个设计约束用于整个设计中,当然会有个别区域或节点不能照搬这个原则,这时就可绕过高一级约束而采用分级设计中的低级约束。以ACCEL Technologies的约束条件编辑器Parametric Constraint Solver为例,共有7级约束: 1.设计约束,用于所有无其它约束的对象。 2.层级约束,用于某一层上的对象。 3.节点类型约束,用于某个类型包含的所有节点。 4.节点约束,用于某一个节点。 5.类间约束,表示两类节点之间的约束。 6.空间约束,用于某个空间内的所有器件。 7.器件约束,用于某一个器件。 该软件按照从个别器件到整个设计规则的顺序遵循各个设计约束,并用图形的方式显示出这些规则在设计中的应用次序。 ·例1:线宽=f(阻抗,层间距,介电常数,铜箔高度) 这里举例说明参数化约束条件如何作为设计规则控制阻抗。如前所述,阻抗是介电常数、到最近线路层距离、铜线宽度及高度的函数,由于已确定了设计所要求的阻抗,因此可任意取这四个参数作为相关变量重新写出阻抗公式,大多数情况下设计人员能够控制的参数只有线宽。 正因为此,对线宽的约束就是阻抗、介电常数、到最近线路层距离及铜箔高度的函数。如果将该公式定义为层级约束而将制造工艺参数定义为设计级约束,那么当所设计的线路层改变时软件会自动调整线宽以进行补偿。同样道理,如果设计的线路板用另一种工艺进行生产而使铜箔高度发生了变化,则只要改变设计级里的铜箔高度参数就可使层级里的相关规则自动重新计算。 · 例2:器件间隔=max(默认间隔,f(器件高度,检测角度)) 同时使用参数约束和设计规则检查显而易见的好处是当设计修改时,参数化方法具有很好的可移植性和可监测性。本例表明如何由工艺特性及测试要求来决定器件间隔,上面的公式表示器件间隔是器件高度和检测角度的函数。 通常检测角度对整块板都是一个常数,所以可在设计级进行定义。当改由不同的机器进行检测时,只需在设计级中输入新的值即可更新整个设计。将新机器性能参数输入之后,设计人员只要简单地运行一下DRC以检查器件间隔是否与新的间隔值有冲突,即可知道设计是否可行,这要比先分析再改正然后按新间隔要求硬性计算容易得多。 ·例3:元器件布局 除了对设计对象和约束条件进行组织,设计规则还可用于元器件布局,也即它能够根据约束条件检测出在哪里放置器件不会带来错误。图1中突出显示的部分是满足物理约束条件(如与板边沿间隔及器件间隔等)的器件放置区域,图2突出显示的是满足电性约束的器件放置区域,如最大走线长度,图3仅显示满足空间约束的区域,最后,图4是前3幅图中各部分的交集,这就是有效布局区域,在这个区域放置的器件可以满足所有约束条件。 事实上用模块化方式生成约束条件可极大提高其可维护性和可复用性。参考前一阶段不同层的约束参数可生成新表达式,如顶层线宽取决于顶层的距离和铜线高度及设计级中的变量Temp和Diel_Const。请注意设计规则是按由低到高的顺序显示的,改变一个高一级约束会立刻影响参考这个约束的所有表达式。 设计复用和文档 参数化约束不仅可以显著改进初始设计流程,而且对工程更改和设计复用更为有用,约束条件可作为设计、系统和文件资料的一部分,如果不这样而只存放在工程师或设计人员的头脑中,那么当他们转到其它项目时可能就会慢慢忘掉。约束文档记录了设计过程中应遵循的电性能规则,可使他人有机会了解设计者意图,从而易于将这些规则应用到新的制造工艺中或根据电性能要求进行改变。以后的复用者也可以知道准确的设计规则,并通过输入新的工艺要求而进行更改,不必再去猜测诸如线宽是如何得到之类的问题。 本文结论 |