Get email delivery of the Cadence blog featured here
Your design is complete. Yet, you have 20 DRC violations that need to be addressed (whether that means correcting the constraint required value, modifying objects, or waiving the DRC to sign off on it as okay). What’s the best way to go about reviewing these issues, determining the proper resolution, and reflecting that in the design?
With Cadence, flexibility is the name of the game. Or maybe it’s a choice. I don’t know, I prefer Scrabble, myself. My point being that there are a variety of commands that you can use during the design review and sign-off phase of your flow. Today, we’re going to review a couple of the major ones and go through scenarios where we feel they are the best tool to use.
The Waive DRC menu of commands is the simplest of the interfaces to use, but the commands only allow you to sign off on errors as being okay (with a comment), or to restore those previously waived back to regular violation markers.
Waive DRC, the standalone command, provides a simple interface to show you the selected violation, set the command, and remove the error from the canvas. Should you make changes to the design, such as updating the nearby dynamic shape, the DRC will remain waived. It is flagged not as that specific error, but rather the location and two objects.
If you move either of the design elements such that the violation location changes, the DRC will be considered new and will need to be waived again. This is to protect you and your design. After all, if you signed off on the gap of 49.99um being okay instead of the required 50.00um, that does NOT mean you’re allowing the system to accept a gap of 45.00um. That’s a big difference!
Waived DRCs can be identified easily in the design if displayed because their bowtie markers are rotated 90 degrees (yellow) to the standard active DRC orientation (red):
While these commands are simple to use, and thus, are good for general updates, they do require that you know where the DRCs are that you’re looking for. If you’re trying to walk all the errors in the design, there are better tool choices available.
Constraint Manager is an obvious place to look for DRC management tools. After all, it’s where you ENTER the constraint values! And, it is a great place to see the status of violations, counts, etc. if you go to the DRC worksheet:
Here, when you click on a category of violation – conveniently grouped in the same way as the worksheets above – you will get a list of all the rules with active violations. Expand or collapse a given rule to see its markers in terms of location, related objects, and required vs actual value.
If you right-click any violation entry, you can waive the error or zoom to it in the canvas to see more information about the problem area. Unlike the waive DRC command, in Constraint Manager, you enter the comment for the waived DRC after you change the marker’s status to waived. You cannot do these in the opposite order. So, don’t forget to update the comment when you waive a marker here!
For those of you who are familiar with and appreciate the spreadsheet-like data presentation of Constraint Manager, and want a display of the errors in a format as consistent with that as possible, this will be your ideal visualization and management tool. However, if you are not tied to this layout, our final option maybe even better; follow along to understand why.
The DRC Browser – under the Tools menu, if you haven’t noticed it – is one of the more recent additions to the tool. This provides an organization that is a similar, but more streamlined, view to that found in Constraint Manager.
Here, the entire focus of the UI is on constraint violations. Nothing else is presented, and so the form can be smaller. It also shows you the number of error by category, unlike Constraint Manager, where you need to click into a worksheet category to see the number of errors in each.
Perhaps one of the most useful features of all, though, is the highlighting. In the image above, the blue categories indicate that there are violations inside that haven’t yet been looked at. If you have 500 errors presently and can look through 200 before lunch, it is very helpful to have a graphical reminder of where you stopped the last session. Once you’ve investigated a marker, its entry in the tables turns from blue to black.
The browser also saves you clicks over both the Waive DRC and Constraint Manager tools. A single click on an error automatically centers you on that marker in the main canvas for contextual data – it will even update layer visibility if so configured. You can range select in the table to waive (or restore) violations. This is useful in those cases where a set of errors in a window can all be signed off for the same reason. Once you set them to waive, type in your comment/reason, and you’re done.
Finally, the form provides the ability to see a DRC chart. While not directly useful here, this is a great design review tool, showing a pie or bar chart depicting the number of violations of each type. If the class of designs you work on has a very strict set of SI parameters, the chart may show many electrical constraint errors. Or, if it doesn’t, it may indicate that you are in great shape!
All three tools above have use models and scenarios they were designed to be most useful for. How do you use them in your daily work? How could they be changed to make you more productive? Please, let us know!