Home > Community > Blogs > Digital Implementation > five minute tutorial creating a nondefault rule
Login with a Cadence account.
Not a member yet?
Create a permanent login account to make interactions with Cadence more convenient.

Register | Membership benefits
Get email delivery of the Digital Implementation blog (individual posts).


* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

Five-Minute Tutorial: Creating a NONDEFAULT Rule

Comments(6)Filed under: Digital Implementation, encounter, EDI system, five minute, tutorial, five-minute, nondefault rule, nondefault

Ah, the NONDEFAULT rule. This is a routing rule that is, well, not the default! It usually consists of double-wide or triple-wide metal, and at least double-wide spacing, but it can be whatever you like as long as it follows DRC rules (no violating the min or max metal widths, for example). NONDEFAULT rules are typically used to route clock nets or other sensitive nets. If you are very lucky, your tech LEF came with some NONDEFAULT rules already defined. But this is not usually the case. Those of us who have been around a while always dreaded the creation of NONDEFAULT rules -- it's not difficult, but it is tedious to write out a large tech LEF section by hand.

Well, for some time now, EDI has had the ability to create NONDEFAULT rules for us! It's easy and fast. Here's how to do it:

In the EDI 9.1 Menu, go to Edit -> Create Non Default Rule. You'll see the following form:

Name your NONDEFAULT rule something descriptive, and then choose an existing rule to start from. In most cases, all you'll have so far is the Default rule. That's a great starting point. With the default rule width and spacing numbers right in front of you, it's easy to enter values that are twice or three times as large for a double- or triple-wide rule.

Now, the vias: the vias from the default rule (or whatever rule you chose as your starting point) will be listed. In most cases, it's fine to just use the default rule vias.

Finally, decide if you want the NONDEFAULT rule to follow Hard Spacing. This means that violations of the NONDEFAULT rule spacing are considered and flagged as true violations. Without Hard Spacing turned on, the NONDEFAULT spacing is followed as much as possible, but if it needs to be broken to complete the route or follow other routing/spacing rules, then it's not considered a violation.

When you click OK or Apply, the rule is created and exists in your design database. But here is the crucial part: we want to add this NONDEFAULT rule to our tech LEF. Let's say we named our NONDEFAULT rule "DblWide" and we'll output it to a temporary file called tmp.lef. At the EDI prompt, type:

exportNdr DblWide -lef tmp.lef

Now, you can cut and paste the NONDEFAULT portion of tmp.lef into your tech LEF. (The section you need starts with "NONDEFAULTRULE DblWide" and ends with "END DblWide" in this example.)

Much easier than typing the whole thing in by hand!

Would you like to be notified when the next Five-Minute Tutorial comes out? Subscribe to the Digital Implementation blog!


By BobD on September 22, 2010
Great stuff Kari.  I think this is very useful.

It reminds me to mention a related script we ship in the gifts directory:


It takes a user-defined width factor and writes the corresponding NDR.  Like this:

Example: genXWidthNDR -width 1.2

Perhaps another avenue to pursue depending on the requirements at hand.

By Kari on September 23, 2010
Thanks, Bob! Always a great reminder to look in the gift directory for helpful scripts. I do notice that this one does not add any SPACING values in the LEF. Maybe we can enhance that for the next release?

By patrice06 on July 11, 2011
Hi Kari,

In case we also want  "array" of vias for interconnecting those created wider wires, do we have to define them in the LEF or is there a way to tell Encounter to create vias array (like its does automatically for power/gnd for exemple).

So far, I am ending up with the single default vias with my big wires.


By Kari on July 12, 2011
Hi Patrice, I'll post this also in the forum thread where Bob already replied, but just to close the loop for anyone following here: check the LEF manual for the NONDEFAULT rule section. There are some things you can do that may achieve what you want, specifically the MINCUTS and/or USEVIARULE statements.

By nagaraju on August 30, 2012
thanks for the info

By shesha on July 16, 2014
Thanks,. worth & Good info.

Leave a Comment

E-mail (will not be published)
 I have read and agree to the Terms of use and Community Guidelines.
Community Guidelines
The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.