Home > Community > Blogs > Custom IC Design > automatic design rule violation fixing in virtuoso improved idf tool automatically fixes design rule violations in virtuoso
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 Custom IC Design 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: *

Improved IDF Tool Automatically Fixes Design Rule Violations in Virtuoso

Comments(5)Filed under: Custom IC Design, Virtuoso, analog, IC 6.1.5, error correction, IC layout, IC615, design rule violations, layout correction, interactive design fixing, layout optimization, IDF

Although many automatic layout generation tools are available to automate design creation, the layout modification/correction step (fixing design rule violations) is not automated very well.  Consequently, design modification including error correction typically needs to be done manually. A good solution to automate the layout modification/correction step can be provided by a layout optimization tool that optimizes the areas containing design rule violations in a layout, and fixes the violations automatically. Such a capability is provided by the Interactive Design violation Fixing (IDF) tool that was first provided in the Virtuoso IC6.1.4 release.  

The primary advantages of IDF are:

1. Only required areas are modified and corrected (nothing will be changed outside of the selected areas.)

2. It can be called any time in any design phase (even if the layout has not been finalized.)

3. Quality of the modified layout is stable (the results won't vary according to engineers' experience or design manner.)             

As the first step to realize the above requirements, IDF was implemented in our IC6.1.4 software release by freezing (not changing) details outside of specified areas. (Fig 1)


Fig 1. IDF- IC6.1.4 (freeze outside of the area to be optimized) 

Although the IDF in IC6.1.4 worked very well, freezing areas around the area to be optimized had the following two limitations:

1. It takes long time when a design is big because the entire layout data needs to be loaded on the dynamic memory.

2. When multiple areas are selected, one optimization failure ("infeasible") causes the optimization failure of all selected areas.   (All areas must be optimized at the same time since optimizing a design means generating a result that satisfies all requirements simultaneously.) 

Therefore, IDF needed to be enhanced so that automated layout modification/correction worked regardless of the design size, and without infeasible results interrupting the flow. In the latest release, IC6.1.5, the IDF has successfully been enhanced to realize the above requirements.The solution to the problem is applying the automated correction (IDF) only to the affected region.  The areas to be optimized from a design are extracted.  Then, the extracted areas are sent to the IDF engine one by one (Fig. 2)

Fig 2. IDF in IC6.1.5

IDF works very fast in most cases because the size of the data is very small. The following table compares benchmark results of IDF in IC6.1.4 and in IC6.1.5.  IDF in IC6.1.5 finishes all error fixing within 1 minute. 

Table 1.  Runtime comparison (Frozen Donut Area vs. Area Segmenting Method)

Unit [h:m:s]


Size     (um x um)# of Design Rule Errors IDF in IC6.1.4IDF in IC6.1.5
Stdcell MX2X12.61x2.6113s1s
Stdcell DLY1X4 4.06x2.6112s0.5s
Stdcell ADDFX17.54x2.6122s0.5s
CustomDigital 115 x 1573min 52s4s
Analog 24.5 x 6.584s1s
Analog PLL650 x 55030> 2hours *1)30s      *2)


*1) Job was terminated during constraint generation phase.
*2) 2 Infeasible results were reported.  

Runtime (User time) was measured.  
Test Machine:
VMWare Virtual Machine
Redhat Linux 4

Physical Machine:
Dell Laptop PC M65
CPU :Intel Core 2 CPU 2.16GHz
RAM : 3.25 GB
OS Windows XP SP3 

Figure 3 shows the biggest design used for this benchmark test.


Fig. 3 Analog PLL design 650um X 550um(# of DRC Errors  30 -> 2 : runtime = 30sec) 

This approach (loading only the specified area) allows the following benefits:

  • No design size limitations
  • Very fast
  • Non-stop optimization despite some infeasible results

IDF in IC6.1.5 works effectively for medium / large designs.  It can also handle designs of chip-level complexity. Because each optimization task is discrete, the flow does not become interrupted by an infeasible result error.  Also, the runtime is very fast, since the size of each extracted cell tends to be small.

Actually, IDF in IC6.1.5 consists of multiple small IDF fixes in IC6.1.4.  Because a huge amount of design time is wasted on inefficient manual modifications, IDF in IC6.1.5 is a great solution to correct errors. IDF in IC6.1.5 is the answer to industry’s demand for automatic error correction.

Hiroshi Ishikawa

Sr. Engineering Manager, Physical Design
San Jose R&D, Custom IC, Silicon Realization Group 




By Thomas Ussmueller on December 15, 2011

this feature looks very interesting. How do I start the Interactive Design violation Fixing (IDF) in Virtuoso. In the Optimize menu I do not see any menu item with that name.



By Hiroshi Ishikawa on December 19, 2011
IDF can be used from GXL or XL.
So, in GXL, or XL environment,
“Interactive DRC Fixing” will appear one of the items in the “Optimize” menu.
To active XL, or GXL,
Select Launch > Layout GXL (or Layout XL) from the menu bar on a layout window.
Hiroshi Ishikawa

By flash on January 30, 2012
Which licenses are needed for this feature?

By Hiroshi Isihkawa on February 26, 2012
IDF requires 8 GXL tokens.
Because it runs on XL / GXL, additionally, the Virtuoso XL license, or 4 tokens or Virtuoso GXL is needed.

By mical Stewan on October 2, 2012
This article is very attractive and interesting. can you explain  "IDF needed to be enhanced  of the design size, and without infeasible results interrupting the flow."

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.