Home > Community > Blogs > PCB Design > what s good about sip layout adrc see for yourself using the spb16 3 release
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 PCB 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: *

What's Good About SiP Layout ADRC? See For Yourself Using The SPB16.3 Release!

Comments(0)Filed under: PCB design, SiP, SPB 16.3, ACSET, DRC, ADRC

In the SPB16.3 release, the SiP Layout Assembly Design Rules Checker (ADRC) User Interface has been integrated with the Constraint Manager will thereby become consistent with other design rule checks that use Constraint Manager technology.  This also means that exporting the technology file from SiP Layout will save the Assembly Rule constraints to the Allegro technology file for reuse in other designs. 





Assembly Design Rules Checker. It is the feature described in this document.


Design Rule Check – A requirement, be it physical, logical, electrical, etc. which the final design must meet if it is to be properly manufactured into a finished part.


Assembly constraint set (ACSet) is a named, reusable collection of constraint values. There is no predefined default Assembly CSet.


Collection of constraints

The ADRC (Assembly Design Rule Checker) in SiP Layout is a batch process that is initiated after set-up via GUI and technology files. ADRC presents the user with a GUI consisting of one form. The user will select which rules should be checked. To set the constraints for each of the rules, a user should use the “Edit Constraints” button on the form to bring up Constraint Manager.  On clicking the form’s “OK” button, the form is closed and the rules are run in a ‘batch’ mode, i.e. no further user interaction is required. Results of the rule checks are seen in both DRC markers placed in the design, and in an output report file as well as in Constraint Manager. Constraint manager could also be brought up using the regular toolbar and/or menu in SiP Layout.

Assembly Rule checks can be viewed as a batch DRC capability.

While the interface itself can be edited in real time, once the rules are configured, it is a batch process to check the design and create any assembly DRC markers for the user.

The performance of the actual checks will scale based on the size of the design, number, and complexity of rules being checked. Thus, a larger design will take longer to check, and it will take longer if you run more rules.

The switch of constraints for ADRC over to using Constraint Manager and storing the constraints via standard Allegro technology should not cause a noticeable decrease in performance in SPB16.3 vs. SPB16.2.


The Standard Rules checker is intended for use as a batch command. Thus, the intent is for the user to set up and configure all the rules to be checked, and then spawn the batch process to perform all checks at once.

  1. Invoke command (assemrules standard)
  2. If not done so already, to enter desired constraint value and any filtering of objects, load appropriate technology file for ADRC constraints.
  3. Enable and configure all the desired rules. Manually toggle each of the rules on/off, if desired. To see and /or customize constraint values, invoke Constraint Manager by using the  “Edit Constraints ” button. This will bring up the worksheet with currently active rule.
  4. When you are satisfied with the configuration, press the “OK” button to close the form and spawn the batch process.
  5. When the batch process is finished, the tool will present a report listing all violations found.
  6. Browse to each of the violations and either wave the DRC as being acceptable or else modify the package layout to correct the violation.
  7. Re-invoke the assemrules standard command and return to step 3 to update the DRCs until all violations are successfully resolved.

Assembly Constraint Sets

There are at least two scenarios where use of Assembly Constraint Sets are valuable:

  1. Same profile wire-to-wire spacing constraint vs. different profile and DIE Classes
  2. Same profile wire-to-wire spacing

Some users may want to support only two wire-to-wire spacing constraint values, one to use when the two wires belong to the same profile and the other when they belong to a different profile.  Since the assembly rule check does not directly support this with different constraint values for the two cases, and easy way to do this is through use of a constraint set (cset), as follows:

  • Create two assembly csets, called say SAME_PROFILE and DIFFERENT_PROFILE.
  • Set the wire-to-wire spacing constraint value for each cset according to the corresponding customer rule.
  • In the wire-to-wire spacing worksheet, set the Assembly Constraint Set for the design level to DIFFERENT_PROFILE cset.  This means that all cases will initially use the DIFFERENT_PROFILE constraint value for wire-to-wire spacing.
  • Now, in order to specify the SAME_PROFILE cset to get the correct values for all of the same profile cases, for each wire profile (e.g. PROFILE1) that you want this for, add a profile-to-profile object using the right-mouse menu Create function, and select the same profile name (e.g. PROFILE1) from the pull-down list.  If you do this for all relevant profiles, this creates a row for each specific profile to the same profile.
  • Then for the profile-to-profile rows of the worksheet created in the previous step, set the Assembly Cset to be SAME_PROFILE.
  • Now all profile-to-profile cases will use the default DIFFERENT_PROFILE constraint value for wire-to-wire spacing, and the specifically identified same profile to same profile cases will use the SAME_PROFILE constraint value.

Categories of different wire profiles sharing similar constraints

If the design rules include one or more sets or categories of wire profiles that share similar constraint rules, you can create an Assembly Constraint Set for each category.  The user can then put the constraint values for all of the relevant wire rules that a particular category of profiles would need to meet onto the specific category’s Assembly Cset in the Assembly Constraint Set Worksheets.  Finally, go to the wire profile worksheets and for each wire profile that belongs to the category, set the Assembly Cset for that profile to the category’s corresponding cset.

Die Classes

By default, the Die workseets will organize die constraints by listing all of the specific dies in the design.  Constraint values can be applied to each die by referencing an existing Assembly Constraint Set (say a cset that you created called FLIP_CHIP, vs. one called WIREBOND) that contains the relevant constraint values.  However, if there are many different csets in the technology, this can become a bit cumbersome, especially when the csets are brought in from a technology file.  You can use die classes to provide an easier way to organize dies, and the organization can be saved to a tech file for easier reuse in other designs.  For example, suppose you want to organize dies into two classes, one for wirebond dies and one for flip-chip dies.  This can be done as follows:

  • Create a Die Class called WIREBOND and another class called FLIP_CHIP.
  • For the WIREBOND and the FLIP_CHIP die classes, set appropriate values for all of the relevant constraints in the Die worksheets.
  • Sort the dies in the workseet by die type so the wirebond and flip-chip dies are all grouped together.
  • Select all of the wirebond dies and add them to the WIREBOND die class and select all of the flip-chip dies and add them to the FLIP_CHIP class.
  • When a new die is added to the design, go to the worksheet and add it to the appropriate die class.
  • It is also now easy to reuse this organization of die constraints in other dies by exporting the technology file from this design and importing it into the other design where you want to reuse the constraints.
  • Once you have imported the technology file into the second design, simply add all of the wirebond dies to the imported WIREBOND class and the flip-chip dies to the FLIP_CHIP class.

Use Model Example for  technology rules and constraints

In order to set the constraints for the Assembly Rule checks:

  1. Invoke command (assemrules standard)
  2. Enable all the desired rules. Manually toggle each of the rules on/off.
  3. To enter desired constraint value and any filtering of objects, invoke Constraint Manager. The user can do this by using either the “Edit Constraint” button On the form or by using regular toolbar and/or menu in SiP Layout.
  4. In Constraint Manager, go to Assembly Rule Checks domain. In the domain, there are workbooks for each of the Assembly Rule Checks groups. Set desired constraints for each rule. For example,

For the Wire Rules, there are work pages: Wire Online Physical, Wire Online Spacing  and Wire to Wire Online Spacing, Wire Physical and Wire Spacing. Choose the worksheet with the rule you would like to set constraint for.  On the left, you can see all the available wire profile groups.  Set the constraints for each of the Wire Profile Groups.

If desired, use the Assembly Constraint Set Object to set constraints common to a few of the different wire profile groups. To use it, follow these steps:    

  • Select Assembly Constraint Set Object,
  • Choose the worksheet with the rule you want to set a constraint for, for example choose Wire Online Physical worksheet.
  • Right click on the “Objects” column, select “Create-> Assembly CSet” from the menu
  • A dialog with the choice for the name will come up, click “OK”. You can  choose to copy constraints from the previous CSet by selecting the “Copy Constraints From” check box. The CSet is created for all rules in this workbook. In this example the CSet was created not only for Wire Online Physical worksheet, but for all Wire worksheets.
  • Set desired constraint values on the worksheet next to the new CSet
  • To apply the created Assembly CSet, select a worksheet in an object other than Assembly Constraint Set Object (in the example, select  the Wire Online Physical worksheet in the Wire Object)  For the desired wire profile, select the Referenced Assembly CSet cell, and choose your CSet from the drop down list. Continue for the other desired wire profiles.

       5.    When all the constraints for all the rules are configured, and if the constraints are applicable to the technology, save the technology file.  From Constraint Manager, File->Export->Techfile

Menu and Command Line Access

The Assembly Design Rules Checker can be accessed the same as in SPB16.2 via the “Manufacture” pull-down menu from the main tool bar (see figure below) or by command line.  As in SPB16.2, if accessing by command line, use: assemrules standard.

In addition, new for SPB16.3 it can be accessed via “Setup” menu:


Graphical User Interface

The forms illustrated below show the fields of the user interface for this command.

Figure A shows the form with no specific rule selected.

Figure B shows an example of the form in use, where the picture and text have been changed to customize the form for the currently selected rule.

Figure A - Generic Rule GUI which undergoes customization for individual rules

Figure B – Example: GUI customized for " Exposed Metal to Exposed Metal Spacing" rule


There is no mouse popup associated with the command, so this form is all that the user will see. The form and user interaction with the form, are the same in SPB16.3 as in SPB16.2, except where we note otherwise below.  The individual fields are as follows:

(Left side, top to bottom)

  • Rule Selection Window: This window lists, as a tree view, all the assembly rules currently available for the user to run. They are broken down into sections, such as bond wire rules or optical rules. Selecting the text of a rule will cause the description and rule constraints fields to update with a description and the settings for this rule.  Pressing the checkbox will toggle the rule to either enabled or disabled.

If you check the box beside a folder of rules, all rules in that folder would toggle to match the setting beside the folder. Thus, if you select and check the miscellaneous rules folder, all rules in this folder will become activated. Removing the checkbox from that field will, therefore, disable all the rules in the group. The same applies at the top level “All Rules” – checking this field will turn all rules in all folders on/off.

(Right side, top to bottom)

  • Bitmap: This field provides the user with a graphical description of the currently selected rule.
  • Description: This field provides the user with a textual description of the currently selected rule, matching the image above it. This is for information purposes only, and allows the user to get a better feel for what the rule does.
  • Report File Name: Allows the user to specify the name of the report file to be generated by this report (see following sections). The default name of this tab-delimited report is adrc_report.txt. Note that if your ADS_SDREPORTS variable is set in your user preferences, the file will be located in the specified subdirectory. If not set, then the file is placed in the current working directory
  • Note as well that in SPB16.3, we changed the form to remove any constraint value fields that existed for specific assembly rules.  Constraint Manager now includes these in a worksheet instead.
  • In addition, the ADRC XML properties file does not exist in SPB16.3 (see further note below), so we removed all fields specific to the properties file.

(Buttons Along the bottom, left to right)

  • Ok: Closes the form. Starts the batch process to run all the selected checks, generate report, and displays any DRC markers.
  • Apply: Starts the batch process to run all the selected checks, generate and display the report to the user. Differs from OK in that it leaves the form open, allowing the user to run the checks again, possibly with a different set of rules or constraints.
  • Close: Closes the form, whether or not any rules are selected or checks have been performed. Does not run any rule checks.
  • Edit Constraints: This is a new button on the form for SPB16.3.  Invokes constraint manager for viewing/changing rule constraints. The constraint manager will show constraints for  currently active rule.
  • Clear Existing Rule Violations: Pressing this button will cause the tool to remove all Assembly DRC violation markers from the database. This is undone if the Close button is pressed.
  • Help: Invoke context-sensitive help for this command.  In SPB16.3, we moved this button to the bottom right corner of the form for consistency with Allegro GUI forms.

There are two groups of controls removed from the form since SPB16.2.:

  • Constraints: In SPB16.3 constraints are configured using Constraint Manager Interface.
  • Technology: Technology file that used to be specific ADRC technology file were the rule properties and constraints were defined is now incorporated with the techfile.

Constraint Manager Interface

In constraint manager choose Assembly Rules domain. Select appropriate rules group and set / alter constraint for each of the rules in the group.

In the Assembly Rules domain, Constraint Manager will have 4 objects: Assembly Constraint CSet, Wire , Die and Design.

Wire rules

Each bond-wire object belongs to a wire profile group, and a single bond-wire cannot simultaneously be a member of more than one wire profile group. This will allow the user to set different constraint values for different wire profile groups for each rule.  For each constraint there will also be a design level constraint that will be used for any wire profile that does not have a constraint value specific for that profile.  We will not be supporting constraint overrides on specific bond-wires in SPB16.3 or connectivity objects such as nets of buses

There are 5 worksheets in the Wire Workbook : Wire Online Physical, Wire Online Spacing, Wire-to-Wire Online Spacing, Wire ADRC Physical and Wire Online Spacing.

For the Wire-to-Wire clearance rule, there will be a separate worksheet to set specific wire profile group to wire profile group spacing constraints.  This allows specification of different spacing constraints between bond-wires belonging to any specific wire profile group and other bond-wires belonging to some other specific wire profile group.

Die rules

All the die stack members: dies, interposers and spacers will be available to be added to user defined Die Classes.  Similarly, to existing Net Classes in Constraint Manager, the user can create new Die Classes, giving them names.  we will show the individual die stack objects (dies, interposers and spacers) as named objects (by reference designator) in the worksheet such that once a Die Class is created, the user can add die stack objects to the Die Class.  The user interactions with the form and menus for creating and manipulating Die Classes will be the same as how Net Classes work today.  We will not be supporting constraint overrides on specific die stack objects or connectivity objects such as nets and buses.

Design  rules

For all the rules that do not have any parameters dependencies, constraints should be entered at the design level.

Assembly Constraint Set

Assembly constraint sets have been added for Wire and Die Rules. The user interaction to create and manipulate these constraint sets is the same as electrical constraint set in SPB16.2.  Constraint sets are not available for design level constraints and layer based constraints in SPB16.3.

Technology File

The constraints that drive the various rules supported by the ADRC tool are defined in a technology file. When writing the technology file, Constraint Manager writes all of the ADRC constraint IDs and constraint values into the technology file.  In addition, the setting for which constraint ID rules should be run on the ADRC form will be stored in the technology file.  This works exactly the same way as for existing electrical, spacing and physical constraint IDs.

When loading a technology file, all ADRC constraints included in that file will update into Constraint Manager and the values seen in Constraint Manager’s worksheets will update. The next time the ADRC command is invoked, the form will now show the settings for which rules to run that were stored in the technology file.

Uprev and Downrev

To have designs in the SPB16.3 version and SPB16.2 compatible, an uprev from SPB16.2 to SPB16.3 is provided. The rules that were checked to be run will have the corresponding constraint ID in SPB16.3 enabled. All constraints from .ini file and .xml file would be read and moved to the appropriate constraint ID for SPB16.3 Constraint Manager.

Uprev will also create new wire profile groups and constraint sets and map constraint sets to wire profiles in order to make wirebond constraints consistent with ADRC and the rest of the Allegro constraint system.  In particular, if certain bond-wires do not match the wire diameter or material of their wirebond profile, uprev will create a new wire profile group for that and other matching bond-wires.  In addition, if the XML file specifies constraints by non-profile properties such as wire diameter or material, uprev will create a wire constraint set to hold those constraints, and will apply that constraint set to all appropriately matching wire profiles that do not provide their own overriding constraint values

Downrev would provide just limited capability. No .xml file will be written, but .ini file with design level constraints will be written.

Wirebond Constraints

All wirebond constraints, including online constraints have been added to constraint manager worksheets. The existing tab of the Analysis Modes form where online constraints are set in SPB16.2 were removed. All overlapping rules that are available in SPB16.2 in ADRC as well as online constraints are available as online rules only. 

I look forward to your feedback!

Jerry "GenPart" Grzenia


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.