如何设计PCB规则检查器DRC?

本文简要介绍了一种编程方法 PCB 设计规则检查器 (DRC) 系统。 一旦使用电路图生成工具获得 PCB 设计,就可以运行 DRC 以查找任何违反 PCB 设计规则的故障。 这必须在后续处理开始之前完成,并且电路生成器的开发人员必须提供大多数 PCB 设计人员可以轻松掌握的 DRC 工具。

印刷电路板

编写自己的 PCB 设计规则检查器有很多优点。 PCB设计检查器虽然没有那么简单,但也并非不可管理,因为任何熟悉现有编程或脚本语言的PCB设计人员都可以做到,而且好处是不可估量的。

然而,市售的通用工具通常不够灵活,无法满足特定的 PCB 设计需求。 因此,客户必须向 DRC 工具开发人员报告新功能需求,这通常需要金钱和时间,尤其是在需求不断更新的情况下。 幸运的是,大多数工具开发人员可以为他们的客户提供一种简单的方法来编写他们自己的 DRC 以满足他们的特定需求。 然而,这个强大的工具并没有得到广泛的认可或使用。 本文为充分利用 DRC 工具提供了实用指南。

由于 DRC 必须遍历 PCB 来设计整个电路图,包括每个符号、每个引脚、每个网络、每个属性,并在必要时创建无限数量的“附件”文件。 如第 4.0 节所述,DRC 可以标记与 PCB 设计规则的任何微小偏差。 例如,附件之一可能包含 PCB 设计中使用的所有去耦电容器。 如果电容值低于或高于预期,则会在可能发生电源线 DV/DT 问题的地方放置红色标记。 这些辅助文件可能是必要的,但它们不一定是由任何商业 DRC 工具创建的。

如何设计 PCB 规则检查器 DRC

DRC 的另一个优点是可以轻松更新以适应新的 PCB 设计功能,例如可能影响 PCB 设计规则的功能。 此外,一旦您在该领域获得足够的经验,您就可以实施许多其他功能。

例如,如果您可以编写自己的 DRC,您就可以编写自己的 BOM 创建工具,以更好地解决特定用户的需求,例如如何为非本身是电路图数据库的一部分。 或者PCB设计人员可以在PCB设计环境中以足够的灵活性编写自己的Verilog网表分析器,例如如何获取适合特定设备的Verilog模型或时间文件。 事实上,由于DRC 遍历整个PCB 设计电路图,因此可以收集所有有效信息以输出PCB 设计Verilog 网表分析所需的仿真和/或BOM。

在不提供任何程序代码的情况下讨论这些主题会有些牵强,因此我们将使用电路图检索工具作为示例。 本文使用 Mentor Graphics 公司开发的 ViewDraw 工具附属于 PADS-Designer 产品线。 此外,我们使用了 ViewBase 工具,它是一个简化的 C 例程库,可以调用它来访问 ViewDraw 数据库。 借助 ViewBase 工具,PCB 设计人员可以轻松地在 C/C 中为 ViewDraw 编写完整高效的 DRC 工具。 需要注意的是,这里讨论的基本原则适用于任何其他 PCB 原理图工具。

输入文件

除了电路图数据库,DRC 还需要可以描述特定情况的输入文件,例如自动连接到电源平面的合法电源网络的名称。 例如,如果POWER网络称为POWER,则POWER平面通过后端封装设备(适用于ViewDrawpcbfwd)自动连接到POWER平面。 以下是必须放置在固定全局位置的输入文件列表,以便DRC 可以自动查找和读取,然后在运行时将这些信息内部保存到DRC。

有些符号必须有外部电源线引脚,因为它们没有连接到常规电源线层。 例如,ECL 器件的 VCC 引脚要么连接到 VCC,要么连接到 GROUND; 它的 VEE 引脚可以连接到 GROUND 或 -5.0V 平面。 另外,电源线管脚还可以在到达电源线层之前先接上滤波器。

电源线引脚通常不连接到设备符号。 相反,符号的属性(此处称为 SIGNAL)描述了哪个引脚是电源或接地引脚,并描述了该引脚应连接到的网络名称。

信号 = VCC:10

信号 = 地面:20

DRC 可以读取此属性并确保网络名称存储在 legal_pwr_net_name 文件中。 如果legal_pwr_net_name中不包含网络名称,则电源引脚将无法连接到电源平面,这是一个严重的问题。

文件 legal_pwr_net_name 可选。 该文件包含 POWER 信号的所有合法网络名称,如 VCC、V3_3P 和 VDD。 在 PCB 布局/布线工具中,名称需要区分大小写。 通常,VCC 与 VCC 或 VCC 不同。 VCC可以是5.0V供电,V3_3P可以是3.3V供电。

文件legal_pwr_net_name 是可选的,因为后端封装设备配置文件通常必须包含一组有效的电力电缆网络名称。 如果使用 CadencePCB 设计 Systems 的 Allegro 布线工具,则 PCBFWD 文件名为 Allegro.cfg,并具有以下入口参数:

地: VSS CGND GND 地

电源:VCC VDD VEE V3_3P V2_5P 5V 12V

如果 DRC 可以直接读取 allegro.cfg 文件而不是 legal_pwr_net_name,它会得到更好的结果(即引入错误的机会更少)。