Current design technologies require extremely tight matching requirements right down to the overall net topologies to ensure that any deviations in propagation delays are minimized. As a result, design guidelines call for matching the number of vias for a group of signals. The prior releases of Constraint Manager support a "MAX_VIA_COUNT" constraint which does not meet the needs of these new design requirements. The SPB16.3 Allegro PCB Editor constraint system now supports a method to check for an equal number of vias in addition to a "maximum" number of vias on a group of nets or pin pairs.
Also, prior to the SPB16.3 release, if the Max Via constraint was applied to both nets of an Xnet, the most conservative value would ascend up to the Xnet level. This essentially prevents the control of vias on each side of the pass through device. A behavioral change has been made to the Max Via rule that maintains the constraint values at the net level. If constraining at the Xnet level is desired, the constraint will need to be explicitly applied to it.
Read more details below
Match Via DRC
The Match Vias constraint is located in the Electrical domain, Net — Routing — Vias worksheet.
The Match Vias constraint is a boolean ON/OFF assignment. It can be applied to hierarchical objects such as Buses, Net Classes, Diff Pairs and Match Groups. The member with the lowest via count is considered the target or reference object and will indicate a PASS condition. The reference object cannot be reassigned to another member.
A net must be fully routed for a pass/fail condition. An unrouted member would appear in yellow
Max Via DRC
The following figure shows the max via count behavior in SPB16.2. The value of 1 ascended up to the Xnet level, rendering the check useless. Clearly "one value fits all" does not work here.
The Max Vias constraint is now located in the Electrical domain, Net — Routing — Vias worksheet. The constraint is now checked at the net level in an Xnet.
Please let me know how you're using these new SPB16.3 features.
Jerry "GenPart" Grzenia