新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 编写属于自己的PCB设计规则检查器

编写属于自己的PCB设计规则检查器

作者:时间:2010-12-23来源:网络收藏

* 非法去耦电容。这可能导致POWER线dv/dt问题。* 非法上拉和下拉电阻。

本文引用地址:http://www.eepw.com.cn/article/191411.htm


* 不与符号POWER或GROUND平面相连的POWER或GROUND引脚。


* 未使用的输入引脚不被电阻上拉或下拉,或者该电阻不与POWER或GROUND网路直接相连。


* 当单个电阻器上拉或下拉1个以上输入引脚时发出警告信息。


* 对于直接与POWER或GROUND网路相连的非专用POWER和GROUND引脚发出警告信息。

如果采用了标记技术,那么将检验该标记是否注明了正确的可选器件,例如型号是否有效及其几何结构是否与默认的器件规格匹配。

DRC不应当具备的功能

尽管DRC能够实现很多功能,但仍然可以采用其它方法以期更好更便捷地加以实现。后端封装工具可为布线工具封装设计,因此可提供有效帮助。在ViewDraw中,pcbfwd可用来检测诸多违反规则的设计缺陷和设计错误。

DRC和pcbfwd可检测的问题之间存在重叠,因此何时检测何种设计问题就需要进行折衷考虑。DRC通常在设计完成之后及pcbfwd运行之前才能正确地运行。理想情况下,运行pcbfwd只为了封装设计,因此更多的DRC可以得到更好的检测结果。但设计人员仍然需要在其投入精力开发具有超强功能的DRC与pcbfwd现有的免费功能之间取得平衡。这一节简单地讨论了这些问题。

pcbfwd由配置文件控制,如果布线工具为Allegro,那么配置文件名为allegro.cfg。配置文件中的BeginChkRules - EndChkRules部分可用来检测众多错误,如相同符号的重复属性、非法网路和网路属性名称、损坏的异质封装、异质符号上的冲突属性及遗漏属性。例如,为了在异质符号上获取冲突的属性,可以在allegro.cfg文件中添加如下内容:

CHKBRD _HETERO_ATT ERR 0

但仍有一些问题既不能采用DRC,也不能采用pcbfwd进行检测,如设计中的预期冗余。假定器件包含4个完全相同的部分,其中两个部分用于设计,那么这些部分既可以封装在相同器件中,也可以出于冗余考虑将其封装在两个器件中。如果只需要一个器件,那么两部分用到的符号将具有相同的参考标志符(如U4);如果需要两个器件,那么符号将具有不同的参考标志符(如U4和U5),设计人员必须有意识地加以标注。目前尚无检测这类问题的便捷方法,因此只有通过严谨的设计进行保障。

此外,尽管DRC和/或pcbfwd可以检测符号是否具有所需的几何属性GEOM,但并不能检测其值是否与电路图符号相匹配。例如,ViewDraw符号指定的引脚数目就有可能与Allegro覆盖区的引脚数目不匹配。

这类特殊错误可由Allegro的dev_check进行检测。首先,在ViewDraw电路图上运行pcbfwd工具,创建Allegro设备文件,该文件连同Allegro覆盖区文件将导入至dev_check。假定引脚68、69和70位于Allegro覆盖区而不在ViewDraw上,那么dev_check就能检测到该错误。这些引脚可以是不相连引脚,安装孔引脚,甚至是由于失误而仍留在ViewDraw 符号外的POWER/GROUND引脚。不相连引脚和/或安装孔引脚必须赋以NC属性,而POWER/GROUND引脚则必须赋以SIGNAL属性。按这种方式修正符号,然后重新运行pcbfwd 和dev_check。

最后,DRC输出的质量取决于电路图质量。例如,如果输入引脚被错误地指定为OUT属性,那么DRC将产生错误的出错消息。器件的符号质量应仔细而系统地进行控制,因为该质量将影响其它所有工具。

DRC的其它功能

除了检测违反规则的设计缺陷,DRC还可以创建有助于设计分析的附属输出文件,如前所述。输入切换可通知DRC在每次运行时是否创建这些文件。尽管这些文件并不包含DRC出错或警告消息,但仍然能标示出潜在的设计问题。例如,一个文件包含了所有网路及每个网路上的负载数目信息。如果负载数目超出允许值,那么就有可能导致信号完整性问题。设计人员可以迅速地检查该文件以找到潜在的错误。设计人员可以获得尽可能多的附属文件,下面给出了部分列表。

* 按网路名称排序的网路列表及每个网路所在图表的列表。此外,还可能包含引脚编号和网路连接的符号类型(及其参考标志符)。该文件由drc_net()函数创建并可用于查找网路所在的图表。


* 包含所有网路及每个网路上负载数目的列表,由drc_net()函数创建。为了获取更好的信号完整性,网路上的负载数不应超过8个。


* 跨越图表边界的网路列表。这有助于设计人员在调试中调整设计。


* 具有网路属性的网路及其属性。设计人员可以检验网路是否具有正确的属性,该文件由drc_net()函数创建,其基本代码实现如下:

[列表11]

这里,ignetatt()和igattnxt()是可以获取网路属性的ViewBase例程。igattnam()获取属性名,而net_att则是输出文件的文件指针。

* 未使用引脚列表,这些引脚可以是上拉引脚或下拉引脚。该文件由drc_inst()函数创建,可以报告上拉电阻和下拉电阻信息。


* 所有去耦电容及其容值列表,此外还可能包括这些电容所在的电路图表。设计人员应迅速检验该文件以确保PCB上具有足够多的去耦电容
。该文件由drc_inst()函数创建。


* 所有离散器件及其值的列表,如上拉/下拉电阻、传输线终端匹配电阻/电容。此外,还可能包含这些器件所在的电路图表。设计人员可迅速检查器件数目是否合理,该文件由drc_inst()函数创建。

该列表的另一项重要应用则是PCB设计的信号完整性和时序分析[4]。该领域的大多数工具可以通过将所谓的串行元件功能合并为传输线分析结果并从输出文件中取出这些元件,从而自动处理这些串行元件。图2中的R1就是一个串行终端匹配电阻。当信号完整性工具报告网路延迟时,由于R1的存在,延迟将由u1.z到u2.i,而不是先从u1.z到 R1.1,再由R1.2到u2.i。这是正确处理时序分析的方法。

图2:串联终端匹配电阻

然而,为了使信号完整性工具自动识别串行元件,必须满足一些条件。例如,电阻的参考标志符必须以字母R开头,后面紧跟数字,而电容则必须以字母C开头。另一条件则是每个串行元件符号都必须具有属性值为DISCRETE 的TYPE属性。没有这些条件,这些元件就无法得到正确地处理。

被许多其它的PCB复制的模板设计也是一个常见问题。为了避免可能的参考标志符冲突,模板设计中的电阻和电容通常可称为XR1和XC1。在信号完整性工具数据库中,这些器件都必须更改为R10001和C10001(编号略大于原始PCB设计中使用的任何参考标志符)。设计人员可采用由DRC创建的离散器件列表检查到XR和XC参考标志符。


上一页 1 2 3 4 下一页

关键词: PCB 编写

评论


相关推荐

技术专区

关闭