In my last post I discussed the reasons and challenges associated with “waivers” for DRC. As discused, this is becoming a bigger and bigger challenge as designs become more intricate and design rules become more complex. To the poor design team that has the challenge of integrating IP from multiple sources into a single working design, this can become a nightmare to manage. Not only is the DRC debug time significantly drawn out, but there is also the very painful process of trying to communicate across all parties to try to understand which result are real and which can safely be waived. What can you do? This is where the gratuitous plug comes in.
Fear not, dear reader, calibre has a solution for you! The calibre Automatic Waiver Flow enables accurate removal errors in a design matching previously waived results from within the integrated IP blocks.
Let’s consider the requirements for an acceptable waiving solution. First and foremost, it must be accurate. This is where most historic approaches to automating the elimination of waived errors fall short. Having errors show up that should be waived is annoying and continues to impact debug time. But, worse yet, inadvertently waiving a real error can be disaserous.
Unfortunately, accurate waiving is trickier than it may sound. By placing an IP block in context, the errors may be modified. Results may be promoted in the hierarchy. In addition to promotion, the shape of an error result may also be modified as placed in context. This poses a difficult quesiton. If the in-context error is not exactly the same shape as the error when run stand-alone, should it be waived?
Another important criteria for a successful waiving flow is that it cannot depend on modifications to the golden rule file. For a user to modify the rule file, a great deal of risk is taken on by the user. If they code it incorrectly, and miss a real error, it will fall on their shoulders. With the calibre solution, the waiving is done automatically, under the hood, using the golden sign-off rule file. To ensure accuracy, this flow is being validated by the various library validation teams.
Another historic issue that must be addressed is how the waivers are passed. On the one hand, reliance on proprietary formats will naturally limit the industry’s ability to adopt the solution. On the other hand, use of industry standards like gdsii have been tried in the past. One problem is that they typically rely on a separate layer for every check that can be waived. But with the number of checks in today’s rule files, this is nearly impossible. Another issue is that anyone can edit gdsii. What is to prevent a user from creating their own waiver geometry that covers the entire design, thus eliminating any errors from being reported for a specific check?
These issues and several other surprising challenges are all accounted for in the Calibre Automated Waiver Flow. To learn more, come see me at DAC at the Mentor Graphics suites. I’ll be demonstrating this functionality at 1pm daily.