• Home
  • :
  • Community
  • :
  • Blogs
  • :
  • PCB Design
  • :
  • BoardSurfers: How to Create and Remove External DRCs using…

PCB Design Blogs

Monika
Monika
18 Mar 2021
Subscriptions

Get email delivery of the Cadence blog featured here

  • All Blog Categories
  • Breakfast Bytes
  • Cadence Academic Network
  • Cadence Support
  • Custom IC Design
  • カスタムIC/ミックスシグナル
  • 定制IC芯片设计
  • Digital Implementation
  • Functional Verification
  • IC Packaging and SiP Design
  • Life at Cadence
  • The India Circuit
  • Mixed-Signal Design
  • PCB Design
  • PCB設計/ICパッケージ設計
  • PCB、IC封装:设计与仿真分析
  • PCB解析/ICパッケージ解析
  • RF Design
  • RF /マイクロ波設計
  • Signal and Power Integrity (PCB/IC Packaging)
  • Silicon Signoff
  • Spotlight Taiwan
  • System Design and Verification
  • Tensilica and Design IP
  • Whiteboard Wednesdays
  • Archive
    • Cadence on the Beat
    • Industry Insights
    • Logic Design
    • Low Power
    • The Design Chronicles

BoardSurfers: How to Create and Remove External DRCs using SKILL in PCB Editor

 Design rules checks (DRC) determines whether your layout design complies with design constraints and highlights any violations. Performing DRC is an essential step of PCB development signoff before you generate manufacturing files. With increasing miniaturization along with reliability requirements, the demand for design rules is growing exponentially with time, and hence, Allegro® PCB Editor supports external design rules along with native design rule checks in all domains such as electrical, physical, spacing, manufacturing, and assembly.

The native, built-in checks are very easy to manage through Constraint Manager, which gives you an interface to enable and execute these checks. The good news is that external DRCs can also be managed conveniently using Allegro SKILL. In this post, you will see how to create and delete external DRCs using SKILL. A sample SKILL code is used to illustrate the steps and processes. You only need to have basic knowledge of Allegro eXtensions to the SKILL language (AXL) to be able to understand and use the SKILL code in this post.

Creating External DRC

You can create multiple external DRCs while designing your layout. The SKILL function to create a user-defined violation is axlDBCreateExternalDRC. Specify the parameters of this function and catch any violation as external DRCs. Also, create a violation marker to easily identify these violations. Note that an externally defined DRC marker always has the two characters X-D and this how you can easily identify them within the design canvas.

The axlDBCreateExternalDRC function has six arguments, two of these arguments are required and the remaining four are optional.

axlDBCreateExternalDRC ( t_constraint/lt_constraint l_anchor_point [t_layer] [lo_dbid] [l_secondPoint] [t_actualValue] ) ⇒ l_result/nil)

Where:

  • t_constraint: A string; specifies the name of the violated constraint.
  • l_anchor_point: The coordinates; specifies the location of the DRC marker.
  • t_layer: The layer to which the DRC marker is added to. It can either be a class or subclass.
  • lo_dbid: List of objects dbids that cause the DRC.
  • l_secondPoint: Specify the second reference point. This is a coordinate on the object of the DRC pair that does not have the DRC marker on it. Using this point, you can identify the second object causing the DRC. Use nil if DRC is caused by a single object only.
  • t_actualValue: Actual value of the object that causes the DRC.
  • lt_constraint: An alternative method. Specifies a list of (t_constraint t_expectValue). You can either specify t_constraint or lt_constraint.

The function returns a list of two items, the first element being the database ID of the DRC created and the second element being always t. A return of nil means nothing is created.

Verify the results by enabling the DRC error class in the Visibility pane of PCB Editor. Also use the show element command on the DRC marker to see the name of the constraint set that was violated, the location of the DRC marker, and the layer to which the marker was attached.

When you hover the cursor over the DRC marker, the marker is highlighted and the datatip displays DRC error “Externally Determined Violation” with the constraint name, location, DRC layer, and the actual value.



Watch this YouTube video Creating DRC Markers in the PCB Editor with SKILL that explains the usage of this function using an example.

Removing External DRC

You can either waive or remove these external DRCs. Use the axlDeleteObject function to remove a DRC. A sample SKILL code that searches all the objects of type DRC and removes them from the design is available in the SKILL Code Library on Cadence Online Support. You can download the SKILL routine and run it to remove all external DRCs from a design. This SKILL routine deletes all the DRC markers in your design even if they are not visible on the design canvas.

Steps to Use the SKILL Code

Do the following after downloading the SKILL code (.il) file:

1) Extract the file from the ZIP archive and save it in your working directory.

2) Load this SKILL file by first entering skill and then using the load() function in the PCB Editor Command window, as follows:

Command > skill

Skill > load " killallxdrc.il"

This SKILL code creates the command rmxdrc.

3) Run this command from the PCB Editor command line like any other command.

To run the command, first exit the SKILL prompt.

Skill > exit

Command > rmxdrc

That’s it. The command deletes all the instances of the DRC markers indicated with X-D characters. A word of caution though, you might need to tweak the sample SKILL code according to your environment.

In the End

You can write your own SKILL code to identify any type of violation based on your design requirements. If you are new to SKILL, check out our previous blog of the SKILL series.

If you think you need to know and use more of the powerful SKILL environment, trainings are available to give you in-depth, hands-on knowledge on SKILL. Cadence offers all types of training solutions: instructor-led, online, and virtual training. You can check the training calendar and list of scheduled courses at www.cadence.com/training.

For any follow-up questions, you can write to us at pcbbloggers@cadence.com and, are willing to share your SKILL code with others, you can contribute to our Knowledge Content portal.

Tags:
  • 17.4 |
  • PCB design and layout |
  • 17.4-2019 |
  • PCB design |
  • Allegro PCB Editor |
  • SKILL |