Routing the Design Series XL and GXL Product Version 16.0 June 2007 19912007 Cadence Design Systems, Inc. All rights reserved. Portions Apache Software Foundation, Sun Microsystems, Free Software Foundation, Inc., Regents of the University of California, Massachusetts Institute of Technology, University of Florida. Used by permission. Printed in the United States of America. Cadence Design Systems, Inc. (Cadence), 2655 Seely Ave., San Jose, CA 95134, USA. Allegro PCB Editor contains technology licensed from, and copyrighted by: Apache Software Foundation, 1901 Munsey Drive Forest Hill, MD 21050, USA 2000-2005, Apache Software Foundation. Sun Microsystems, 4150 Network Circle, Santa Clara, CA 95054 USA 1994-2007, Sun Microsystems, Inc. Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1989, 1991, Free Software Foundation, Inc. Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, 2001, Regents of the University of California. Daniel Stenberg, 1996 - 2006, Daniel Stenberg. UMFPACK 2005, Timothy A. Davis, University of Florida, (davis@cise.ulf.edu). Ken Martin, Will Schroeder, Bill Lorensen 1993-2002, Ken Martin, Will Schroeder, Bill Lorensen. Massachusetts Institute of Technology, 77 Massachusetts Avenue, Cambridge, Massachusetts, USA 2003, the Board of Trustees of Massachusetts Institute of Technology. All rights reserved. Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. contained in this document are attributed to Cadence with the appropriate symbol. For queries regarding Cadences trademarks, contact the corporate legal department at the address shown above or call 800.862.4522. Open SystemC, Open SystemC Initiative, OSCI, SystemC, and SystemC Initiative are trademarks or registered trademarks of Open SystemC Initiative, Inc. in the United States and other countries and are used with permission. All other trademarks are the property of their respective holders. Restricted Permission: This publication is protected by copyright law and international treaties and contains trade secrets and proprietary information owned by Cadence. Unauthorized reproduction or distribution of this publication, or any portion of it, may result in civil and criminal penalties. Except as specied in this permission statement, this publication may not be copied, reproduced, modied, published, uploaded, posted, transmitted, or distributed in any way, without prior written permission from Cadence. Unless otherwise agreed to by Cadence in writing, this statement grants Cadence customers permission to print one (1) hard copy of this publication subject to the following conditions: 1. The publication may be used only in accordance with a written agreement between Cadence and its customer. 2. The publication may not be modied in any way. 3. Any authorized copy of the publication or portion thereof must include all original copyright, trademark, and other proprietary notices and this permission statement. 4. The information contained in this document cannot be used in the development of like products or software, whether for internal or external use, and shall not be used for the benet of any other party, whether or not for consideration. Patents: Allegro PCB Editor, described in this document, is protected by U.S. Patents 5,481,695; 5,510,998; 5,550,748; 5,590,049; 5,625,565; 5,715,408; 6,516,447; 6,594,799; 6,851,094; 7,017,137; 7,143,341; 7,168,041. Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on the part of Cadence. Except as may be explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or usefulness of the information contained in this document. Cadence does not warrant that use of such information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs of any kind that may result from use of such information. Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor. Allegro PCB Editor User Guide: Routing the Design June 2007 3 Product Version 16.0 1 Overview of the Routing Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Component Fanout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Controlling Fanouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Overriding Line Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Pin - Via Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Specifying Vias and Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Creating Via Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Copying Fanouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 Interactive Routing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 General Routing Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Dynamic Etch Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Setting Visibility During Interactive Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Highlighting Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Viewing Ratsnests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Etch Edit Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Highlighting Segments Over Voids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 About Bubble Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Hug and Shove-Preferred Modes When Adding Clines . . . . . . . . . . . . . . . . . . . . . . . 26 Handling DRC Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Obeying Line Angle Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Odd Angle Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 45-Degree Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Constraint Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Contents Allegro PCB Editor User Guide: Routing the Design June 2007 4 Product Version 16.0 Via Shoving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Using the slide Command in Bubble Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Using the add_connect Command in Bubble Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Adding Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Interactive Routing with Layer-set Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Dening Line Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Cornering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Adding Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Editing Connections and Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Moving or Sliding Connect Lines and Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Custom Smoothing of Connect Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Deleting Connections and Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Changing the Layer of a Connect Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Creating or Moving Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Deleting Vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Spreading Between Voids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Routing High Speed Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Routing Rat Ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Displaying Timing Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Displaying Timing Feedback With Constraint Manager . . . . . . . . . . . . . . . . . . . . . . . 55 Displaying Etch Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Generating a Delay Information Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Delay Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Elongation Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Differential Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Interactive Routing for Differential Pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Single Trace Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Setup and Editing Differential Pairs Using the Etch Edit Tools . . . . . . . . . . . . . . . . . . . . 65 Line Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Cornering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Grid Snapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Route Necking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Single Trace Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Gathering and Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Slide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Allegro PCB Editor User Guide: Routing the Design June 2007 5 Product Version 16.0 Interactive Group Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Routing Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Control Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Cornering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Snapping and Hugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Routing in Single Trace Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Routing with Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Generating Reports on Interactive Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 About Power and Ground Ratsnest Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Setting POWER_AND_GROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4 Prerequisites for Allegro PCB Router Automatic Routing. . . . 85 General Routing Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Grids and Automatic Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Dening Routing Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Via Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Controlling How Vias Are Used During Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Dening Vias for Use During Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Controlling Via Staggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Allowing Via Placement on Pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Controlling the Distance Between Buried Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Controlling the Number of Vias on a Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Scheduling Nets Interactively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Constraints That Affect Automatic Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Net Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Component Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Optimizing Tpoint Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5 Cleaning Up a Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Setting Properties to Prevent Net Changes During Glossing . . . . . . . . . . . . . . . . . . 100 Adding No-Gloss Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Dening the Area to be Glossed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Setting Glossing Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Allegro PCB Editor User Guide: Routing the Design June 2007 6 Product Version 16.0 Glossing Designs Interactively or in Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Glossing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Pad and T Connection Fillet Glossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Preparing the Design for Filleting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Changing a Filleted Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Error Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Error Reporting for Pad and T Connection Filleting . . . . . . . . . . . . . . . . . . . . . . . . . 105 Error Reporting for Dielectric Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6 Using the Allegro PCB Router Translator . . . . . . . . . . . . . . . . . . . . . 107 Translator Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Prerequisites to Running the Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Restrictions and Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Running the Pre-Route Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Running the Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Mapping Allegro PCB Editor Properties, Assignment Tables, Rule Sets, and Constraints . 113 Allegro PCB Editor Properties to Allegro PCB Router . . . . . . . . . . . . . . . . . . . . . . . 113 Allegro PCB Editor Assignment Tables to Allegro PCB Router . . . . . . . . . . . . . . . . 124 Allegro PCB Editor Rule Sets to Allegro PCB Router . . . . . . . . . . . . . . . . . . . . . . . . 125 Allegro PCB Edtior Constraints to Allegro PCB Router Rules . . . . . . . . . . . . . . . . . 129 Troubleshooting Translation Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7 Automatic Routing with Allegro PCB Router . . . . . . . . . . . . . . . . . 135 Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 File Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Autorouting Task Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Mainstream Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 High-speed Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 High-speed Power User Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Autorouting Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Setting Parameters in the Mainstream Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Setting Parameters in the High-speed or High-speed Power User Flows . . . . . . . . 144 Allegro PCB Editor User Guide: Routing the Design June 2007 7 Product Version 16.0 File Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Sample Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Sample Forget File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Allegro PCB Editor User Guide: Routing the Design June 2007 8 Product Version 16.0 Allegro PCB Editor User Guide: Routing the Design June 2007 9 Product Version 16.0 1 Overview of the Routing Process Allegro PCB Editor provides tools that help you perform the following when routing designs: I Interactive routing I Automatic routing with Allegro PCB Router I Glossing to improve the appearance and manufacturability of a design The following list describes a owchart of the basic Allegro PCB Editor routing process. The basic routing owassuming automatic routingis: 1. Prepare for routing: Check layers to see that layer types and photo lm types are correct. Create internal shapes on planes. Create blind and buried vias. Set routing controls (routing areas, constraints and properties, grids, nets, and so on). 2. Manually route critical nets. 3. Dene routing parameters in Allegro PCB Router to control how automatic routing functions. 4. Run Allegro PCB Router. 5. Review routing results. 6. Interactively nish or correct etch. 7. Gloss the design. 8. Optionally analyze the design for signal integrity or EMI. Perform routing anytime after placement in a design ow as shown in Figure 1-1. Allegro PCB Editor User Guide: Routing the Design Overview of the Routing Process June 2007 10 Product Version 16.0 Figure 1-1 Interactive Routing in a Design Flow LIBRARY DEVELOPMENT Create custom pad shapes Define library padstacks LIBRARY DEVELOPMENT Create custom pad shapes Define library padstacks Define unique packages Define mechanical elements LOGIC DATA TRANSFER Create design database Associate Design Entry HDL or System Connectivity Manager schematic or create and enter third- LAYOUT PREPARATION Define design rules (properties and constraints) Define layers (cross section) Create mechanical elements (outline, keepins, keepouts) DESIGN LAYOUT Placement (automatic/interactive) Routing (automatic/interactive) DESIGN COMPLETION Rename reference designators Backannotate Add power and ground planes Run Design Rule Checking (DRC) MANUFACTURING OUTPUT Generate pen plots Create artwork Generate numerical control output DESIGN ANALYSIS Signal integrity analysis EMI Compliance Allegro PCB Editor User Guide: Routing the Design June 2007 11 Product Version 16.0 2 Component Fanout Allegro PCB Editor offers several interactive and automatic controls for component fanout, a process sometimes referred to as pin escaping. You can use Route Fanout By Pick (fanout_by_pick command) to invoke the Allegro PCB Router and work with .do les, route interactively within Allegro PCB Editor, build fanouts into your library symbols, or use the suite of interactive fanout commands located in the Route menu. The interactive suite includes four commands to create, copy, dene via structures, and convert cline/via extensions to fanouts. Fanouts created with the interactive suite are automatically associated to the symbol instance. This is benecial when moving a component; fanouts not associated remain in place when a component is moved. Route Convert Fanout Mark (mark fanout command) can be used to associate fanouts that may have originated from the Allegro PCB Router or ones routed manually. Route Create Fanout (create_fanout command) is applied to a single package symbol. There are several control options available to customize the style and physical characteristics of the resulting fanout pattern. Unlike Route Fanout By Pick, Route Create Fanout is not DRC aware and may result in via to element conicts. Running additional passes with parameter adjustments may be required to reach nal intent. Complex via structures are typically used on designs utilizing High Density Interconnect (HDI) rules. If required for fanout, they can be dened using Route Define Via Structure (define via structure command) and then applied to a symbol with Route Create Fanout. Via structures are uniquely named and are stored in the database. Route Copy Fanout (copy_fanout command) is used to replicate an existing fanout pattern to all other packages or devices of the same name on the same layer. There are no restrictions on the origin fanout; it can be auto generated or user dened. Controlling Fanouts Route Create Fanout works with the Options tab of the Control Panel where several parameters exist to control the physical spacing and style of the fanout pattern. Available Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 12 Product Version 16.0 elements for selection are symbols and pins. Generating a fanout automatically replaces any existing fanout on the chosen elements. If pins connect to a different component, existing fanouts are preserved. The command does not create: I shared vias I multiple vias for voltage pins I fanouts for thru-hole pins I fanouts for pins whose padstack name contains FID, assumed to be ducials If multiple via padstacks are associated with a net, then fanout does not occur, and a warning message displays. In this case, you must select a specic via padstack fromthe via dropdown menu. Route Create Fanout and Route Copy Fanout are not DRC aware. DRC errors may result after each operation. Parameter adjustments or interactive editing may be required to comply with DRC rules. Figure 2-1 Options tab for Route Create Fanout The use of the Unassigned Pins option results in the fanout of all pins on a component. Pins not assigned a logical connection are considered unassigned, as shown in Figure 2-2. Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 13 Product Version 16.0 Figure 2-2 Fanout of Unassigned Pins Overriding Line Width By default, Route Create Fanout uses the line width specied in the respective nets cset. Use of the Override Line Width parameter overrides the inherited value and applies to all pins. Selective override at the net level can be accomplished by enabling the Include all Same Net Pins option. For example, you may want all logical nets to be 6 mils, but DC nets to be 10 mils. After using Route Create Fanout with override line width set to 6 mils, change the override line with to 10 mils, enable the same pin option, set the Find Filter to pins, then select a DC pin to fanout all pins on that net. Pin - Via Space Distance between the edge of the pin-pad and the edge of the via-pad may be regulated with the Pin to Via Space parameter. Zero or negative numbers are valid entries. Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 14 Product Version 16.0 Figure 2-3 Pin to Via Spacing (top: negative clearance value; bottom: positive value) Specifying Vias and Orientation You can choose the type of via froma list of those stored in the database that span specied subclasses. The combination of the start-end layers produces the list of applicable via types for that range. There are 13 direction types to consider pending the type of package symbol with which you are working. The direction of the fanout via is relative to the pin location. Distance between the edge of the pin-pad and the edge of the via-pad may be regulated with the Pin to Via Space parameter. Zero or negative numbers are valid entries Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 15 Product Version 16.0 Figure 2-4 Via Direction Parameters Via in Pad centers a via at the pin origin with no cline between the via and the pad. Figure 2-5 Via in Pad BGA Quadrant is the default style in which vias are created for each pin in the direction away fromthe symbol center. Two unused channels remain (one vertical, one horizontal) that pass through the symbol center. BGAs by default fan out using 45 degree angles. Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 16 Product Version 16.0 Figure 2-6 BGA Quadrant Style North, South, East, West specify compass-point directions. I NE (northeast), NW (northwest), SE, (southeast), and SW (southwest) control 45 degree angles. I Inward, Outward, and In/Out are useful for SOICs and other non-BGA components. Inward allows vias underneath the component. Outward allows vias outside the component. In/Out allows fanouts to alternate between Inward and Outward orientation. The Min Channel Space parameter is used to maintain a minimumspace between adjacent fanout vias. The distance spans the edge of a via-pad to the edge of a via-pad on the diagonal, and as the distance increases, so does the stagger effect, as shown in Figure 2-7. The value defaults fromthe via-to-via space in the default constraint set and is available when you set Via Direction to Inward, Outward, or In/Out. Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 17 Product Version 16.0 Figure 2-7 Minimum Channel Space Between Vias To create fanout clines with two segments and an arc either clockwise (cw) or counter- clockwise (ccw), a Curve option is available when used in conjunction with a Via Direction of BGA Quadrant Style, NE, NW, SE, or SW. A graphic depiction of the Curve options effects is available by pressing the ? on the Options tab. Figure 2-8 Curved Cline Segments Creating Via Structures A via structure is a series of vias and clines used primarily on HDI designs to transition a signal from the surface into the HDI or core layers. The Route Define Via Structure (define via structure command) can be used to dene a single via structure that Allegro PCB Editor User Guide: Routing the Design Component Fanout June 2007 18 Product Version 16.0 comprises a single via and connect line, or a multiple combination of these elements spanning many layers. Chosen vias and clines must all be connected to each other and belong to the same net. They may be connected to only one pin, whose location becomes the symbol origin. Duplicate symbol names are not created. A via structure must start and end on the subclasses specied in the create fanout commands Start and End subclasses elds when used in creating fanouts. When more than one type of via structure is required for a component fanout, such as for power or ground fanouts that terminate on different end layers, you can dene additional via structures, then use Route Create Fanout in combination with the Include all Same Net Pins option to disperse the new via structures across all same net pins across the symbol. Copying Fanouts Route Copy Fanout (copy_fanout command) replicates instantiated fanouts across all common package names or device types. Replication is limited to the same side of the board where the origin component is placed. For symbols on the opposite side, you can create a fanout for one instance using Route Create Fanout, and then copy it to the remaining symbols on that subclass. Copying a fanout automatically replaces any existing fanout on the chosen component unless the FIXED property has been assigned, or the fanout is routed to a different component. A copy occurs even if you have modied a symbol pin's padstack on one instance, as long as the pin location remains unchanged. Copied fanouts replicate the origin symbol attributes such as line width, via type, direction or via structure. DRCerrors may occur after the command is completed; for example, the copied fanout via may conict with an adjacent pad or may not meet minimum line width requirements. Figure 2-9 Copied Fanouts Allegro PCB Editor User Guide: Routing the Design June 2007 19 Product Version 16.0 3 Interactive Routing Allegro PCB Editor provides several interactive routing options for producing manufacturable results on the following types of designs: I Analog I Digital I Surface-mount I Through-hole I High-speed I Multichip module I Hybrid Interactive routing lets you do the following: I Connect two points, with and without vias I Start a connection from a Rat T point I Edit vertices I Insert blind, buried, and through-hole vias I Shove vias when adding clines I Add, slide, or delete connections and vias I Begin a connection, then run automatic routing to nish the etch for that pin-pair I Route timing-sensitive circuits I Route with layer-set constraints Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 20 Product Version 16.0 Interactive routing features complement automatic routing features. You can use interactive routing to: I Complete critical nets before automatic routing. I Finish disconnects left after automatic routing. General Routing Prerequisites Table 3-1 shows general prerequisites, recommendations, and optional considerations for interactive routing. The table also provides links to the areas of the user guide that detail each process. Table 3-1 Prerequisites for Interactive Routing Prerequisite Interactive Routing For Details, See... Dene nets in netlist Required unless routing in a package symbol Writing an Allegro PCB Editor Netlist in the Allegro PCB Editor User Guide: Transferring Logic Design Data. Schedule nets in netlist If needed Scheduling a Net in the Allegro PCB Editor User Guide: Transferring Logic Design Data and Scheduling Nets Interactively Load netlist Partial netlist for intelligent conductor optional, but not required Creating a Database in the Allegro PCB Editor User Guide: Transferring Logic Design Data Place components Partial placement, reecting netlist, required Chapter 3, Placing Elements Manually, in the Allegro PCB Editor User Guide: Placing the Elements Dene etch subclasses As needed How Etch Shapes Affect Routing in the Allegro PCB Editor User Guide: Preparing the Layout Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 21 Product Version 16.0 Dynamic Etch Editing When you route connections interactively, you get immediate, real-time feedback by way of dynamic WYSIWYG etch editing. You can see the results of any changes you make when adding or editing etch. Components of dynamic etch editing are integrated in the Route Dene etch width Required Dening Line Width Dene route grid As needed Specifying Grids in the Allegro PCB Editor User Guide: Getting Started with Physical Design Verify layer information Recommended Working with Cross Section Layers in the Allegro PCB Editor User Guide: Preparing for Layout Dene blind and buried vias As needed Dening Blind and Buried Vias Dene route and via keepouts As needed Keepin and Keepout Areas in the Allegro PCB Editor User Guide: Preparing for Layout Dene spacing and physical constraint sets for design rule checking As needed Chapter 3, Working with Constraints, in the Allegro PCB Editor User Guide: Creating Design Rules Dene electrical constraint sets As needed Chapter 3, Working with Constraints, in the Allegro PCB Editor User Guide: Creating Design Rules Dene via padstacks As needed Chapter 3, Layout Padstacks, Vias, and Etch Shapes in the Allegro PCB Editor User Guide: Preparing for Layout Table 3-1 Prerequisites for Interactive Routing Prerequisite Interactive Routing For Details, See... Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 22 Product Version 16.0 Connect (add connect command), Route Slide (slide command), and Edit Vertex (vertex command) menu items. They include: I Bubbling in hug- or shove-preferred modes I Smoothing connect lines I In-compliance or out-of-compliance feedback on timing constraints I Dynamic DRC I Full visibility of elements on dimmed or invisible layers during etch editing operations All these features let you complete interactive routing tasks quickly and successfully. The menu items and console commands used in dynamic etch editing are described in the Allegro PCB and Package Physical Layout Command Reference. The following issues are related to some components of dynamic etch editing: I Bubble functionality may not perform optimally on arc segments or line segments that need to bubble arcs. I Dynamic DRC does not support electrical DRC violations. I In some instances, use of smoothing in bubble mode could result in one cline causing another to bubble. I Full smoothing on long non-orthogonal segments may result in slower performance when in vertex mode. I Based on your hardware, performance degradation may occur on very dense designs as a result of WYSIWYG functionality. Setting Visibility During Interactive Routing You can set the visibility (highlighting, dimming, and so on) of elements and layers to assist you while manually editing etch and other design elements. You can set these functions statically using commands for highlighting nets and viewing ratsnests or dynamically through the use of Shadow mode in the Color dialog box, and a user preference. Highlighting Nets You can highlight nets that you want to route so that they are more visible. To choose elements for display in the permanent highlight color, choose Display Highlight Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 23 Product Version 16.0 (hilight command). To turn off the highlighting, choose Display Dehilight (dehilight command). Viewing Ratsnests To display all rats or only those for a component or a net, choose Show Rats All (rats allcommand), Show Rats Components (rats component command), or Show Rats Nets (rats net command). To blank out rats or remove them from display, choose the Blank Rats All (unrats all command), Blank Rats Components (unrats component command), or Blank Rats Nets (unrats net command) menu items. Etch Edit Visibility Normally, as you edit etch using the Route Connect (add connect command), Route Slide (slide command), or Edit Vertex (vertex command) menu items, if the edit activity moves or affects an element or a cline on a non-visible layer, that layer becomes temporarily visible. This happens whether or not a DRC violation occurs. To control the visibility of layers that are not active, use the following: I Shadow mode in the Display folder of the Color dialog box Shadow mode shows the active etch layer in full color and dims all other visible layers, that is, layers that are selected in the Visibility tab. Other layers are temporarily highlighted only if a DRC violation occurs. To set shadow mode, choose Display Color/Visibility (shadow or color192 commands). I The bubble_no_display_invisible environment variable affects how invisible elements are dynamically displayed when bubbled If an invisible element is modied by shove in a way that causes a DRC violation, the element, via or segment, is displayed in the highlighted color. If an invisible element is modied by shove and there is no DRC violation, it is displayed only if you have not set the bubble_no_display_invisible environment variable. To set environment variables, choose Setup User Preferences (enved command). If you enable Shadow mode and you set the bubble_no_display_invisible environment variable, the following occurs: I The active etch layer appears in full color. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 24 Product Version 16.0 I Other visible layers are dimmed. I All other layers do not appear. I If a DRC violation occurs on a layer that is visible but not active, the elements on that layer appear in the temporary highlight color. I If a DRC violation occurs on a layer that is not visible, the element with the DRC marker appears. Highlighting Segments Over Voids Critical signal traces must travel over an uninterrupted copper plane to insure a continuous loop of return path current. Even traces that overlap pin voids can be subject to signal disruption. Identifying and locating all of these void overlaps is crucial to assuring the integrity of the signals in question. The Highlight Segments Over Voids feature (highlight sov command) locates and highlights the segments of nets where signals overlap voids. The pin where the overlap occurs is also highlighted. This feature streamlines your ability to eliminate potential signal integrity problems during the clean-up phase of your design. Typically, you use this feature near the end of the design process, after the routing has beencompleted and all other constraints have been met. How Highlight Segments Over Voids Works All segments of the selected nets that overlap voids are highlighted, as well as the offending void. Only adjacent voltage planes are considered. The Highlight Segments Over Voids feature works across the entire board. Note: In the case of cross-hatched planes, the Highlight Segments Over Voids feature highlights only those clines that cross the boundaries of the planes. Such violations for cross-hatched planes appear in the report le under the section Segments with partial or missing plane coverage. Highlight Segments Over Voids checks all nets except those with the VOLTAGE property. You can limit the check to particular nets by assigning the SOV_CHECK property to one or more nets. If a net is assigned both the SOV_CHECK property and the VOLTAGE property, the VOLTAGE property takes precedence and the net is not checked. A report le containing the violations is generated. The report le appears in the Viewlog dialog box, which allows you to click on the X,Y coordinates of a violation and center the design window on that object. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 25 Product Version 16.0 The report le shows the spacing of the overlap for each violation. You can scan the list quickly, looking at the spacing values, and determine if there is a common number that would be considered acceptable (for example, 0.2 mils). You can then set the sov_spacing value to offset that (sov_spacing = -0.2) and rerun highlight sov to see where the really signicant overlaps occur. This process eliminates many false violations and helps you choose a reasonable value for sov_spacing without a lot of guesswork. By repeating this process incrementally, you can arrive at the smallest acceptable value based on what you have designed. Setting the User Preference Variables You can set the following user preference variables to control how Highlight Segments Over Voids operates: sov_spacing Allows you to specify the minimum space that must exist between void and a cline segment. This will suppress Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 26 Product Version 16.0 highlighting anything less than or equal to that value if it is acceptable to have a small part of a cline exposed by an antipad but the majority covered. You can use this variable to eliminate any false failures and highlight only the most troublesome conditions. The value for sov_spacing is expressed in the same units that the design uses (mils, mm, inch, micron). The default value is 0. A positive value means there must be space between the void and the cline segment. Anegative value means the segment is allowed to overlap the void by that amount. A value of 0 allows the segment to touch a void without overlapping. sov_active If enabled, only the active layer is checked. If you disable sov_active, the Highlight Segments Over Voids checks all conductive layers that have at least one adjacent plane. You set these variables in the User Preferences Editor (from the Setup menu, choose User Preferences), under the category Display_SOV. About Bubble Mode You can choose hug- or shove-preferred bubble modes to avoid spacing DRC errors when adding newetch using Route Connect (add connect command) or modifying etch using Route Slide (slide command), or Edit Vertex (vertex command) during interactive routing. I When Allegro PCB Editor, in hug-preferred mode, encounters an obstacle, it tries to maintain the geometry of the existing etch to avoid spacing violations. If it cannot successfully hug existing etch with hug-preferred mode enabled, then it tries to shove clines to avoid spacing violations. I When Allegro PCB Editor, in shove-preferred mode, encounters an obstacle, it tries to maintain the geometry of the new etch. If it cannot successfully shove existing etch due to obstacles with shove-preferred mode enabled, then it tries to hug obstacles to avoid spacing violations. For additional information, see Obeying Line Angle Controls. Hug and Shove-Preferred Modes When Adding Clines Figure 3-1 shows the differences between hug- and shove-preferred bubble modes when adding clines. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 27 Product Version 16.0 Figure 3-1 Hug and Shove-Preferred Modes Off Hug Shove I Off: Shows the original path of the newetch without bubble mode enabled. The newetch runs on top of the bottom cline, causing DRC errors. I Hug-preferred bubble mode: Newetch hugs the bottomcline. The bottomcline retains its original position. I Shove-preferred bubble mode: New etch moves the bottom cline. Handling DRC Errors Using Route Connect (add connect command) and Route Slide (slide command) you can dynamically bubble to x spacing violations when in hug- or shove-preferred bubble mode. If Allegro PCB Editor, in the mode, cannot x some violation(s), it changes the cursor to the DRC marker shape and highlights segments that have spacing violations as you move the mouse. Allegro PCB Editor dynamically highlights cline segments affected by DRC errors using the temporary highlight color you dened in the Color dialog box, accessed using Display Color/Visibility (color192 command). If Allegro PCB Editor, in bubble mode, fails to x DRC errors, takes undesired paths to x them, or requires too much time to arrive at a solution, you can make intermediate picks to guide more specically through obstacles. If you disable Allow DRCs in the Options tab when using Route Slide (slide command), the extent of the slide is limited to prevent you from creating spacing violations. Shove- and hug-preferred bubble modes conform to spacing checks and may consequently cause electrical constraint-set DRC errors, which are not reported until you make the next pick. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 28 Product Version 16.0 Obeying Line Angle Controls The initial path for new etch follows the Line lock angle you specied. However, when you enable bubble mode, new or existing etch hugs or shoves other clines to avoid DRC errors, even if it violates the specied angle. Odd Angle Lines If the original design contains odd angle lines, bubbling may create more odd angle lines, as shown in Figure 3-2, even if the Line lock value is 90. Figure 3-2 Odd Angle Lines 90/off 45/off Hug preferred/45 and 90 I (Left) A line with a Line lock setting of 90 and bubble disabled I (Center) A line with a Line lock setting of 45 and bubble disabled I (Right) Hug-preferred bubble mode enabled, hugging an odd angle line, regardless of the 45- or 90-degree angle setting 45-Degree Lines If the original design contains 45-degree angle lines, Allegro PCBEditor, in bubble mode, may create more 45-degree angle lines (Figure 3-3) even if you set the angle to 90 degrees. Hugging the outside of a 45-degree turn may result in 45-degree segments that exceed the specied value in the Max 45 length eld, as shown in Figure 3-3. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 29 Product Version 16.0 Figure 3-3 45-Degree Angle With and Without Hug-Preferred Mode I (Left) The specied maximum 45 length obeyed. I (Right) If the shortest cline was added at the maximum 45-degree length, Allegro PCB Editor, in hug-preferred mode, adds other segments at greater than maximum45 length. Pads With hug- and shove-preferred bubble mode, circular objects such as pads do not produce circular etch, as shown in Figure 3-4. Figure 3-4 Handling Pads I (Left) When the Line lock angle is 90 degrees, orthogonal routes handle circular objects. I (Right) When the Line lock angle is 45 degrees or off, Allegro PCB Editor uses 45- degree lines to bubble around circular objects. Arcs You cannot add arcs while in shove- or hug-preferred mode. Allegro PCB Editor does not support hugging or shoving of existing arcs. Consequently, specifying a value of Arc in the Line lock eld disables bubble mode. Conversely, enabling bubble mode to either hug- or shove-preferred sets the Line lock value to Line. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 30 Product Version 16.0 Constraint Areas If a line crosses a constraint-area boundary, more than one line-to-line spacing rule may apply to the cline. This could result in bubble using the wrong spacing rule for the line. To avoid this issue, pick just inside the constraint area and then continue routing. Via Shoving When you are in bubble mode, you can shove vias when adding or sliding connections or editing vertices. This functionality lets you complete a connection without DRC violations. You set via shoving in the Options tab when you choose Route Connect (add connect command), Route Slide (slide command), or Edit Vertex (vertex command), as shown in Figure 3-5. Note that in each case, Shove vias is disabled when Bubble mode is inactive. Figure 3-5 Shove Via Settings in Options Tab add connect conguration vertex conguration slide conguration Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 31 Product Version 16.0 You can set via shoving to operate in three modes. Table 3-2 shows how the Shove vias modes work with the Bubble modes. Table 3-2 Shove Via Modes Regardless of the Shove via mode you choose, the behavior of vias when you shove them is identical. A shoved via moves the minimum distance from an element acting upon it. To accommodate this behavior, a via may sometimes hop over a connect line to ensure the least amount of disruption to the overall design. This behavior is shown in Figure 3-6. Bubble Shove Vias Minimal Full Hug-Preferred Mode Clines hug the vias unless there is no room, then shoving occurs. Clines hug the vias unless there is no room, then shoving occurs. Hug-Only Clines hug the vias. Other etch remains the same. Clines hug the vias. Other etch remains the same. Shove-Preferred Mode Clines hug the vias unless there is no room, then shoving occurs. Vias are shoved. If a via cannot be shoved, Allegro PCB Editor goes around it. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 32 Product Version 16.0 Figure 3-6 Via Hopping Display Congurations for Via Shoving Like all other aspects of etch editing, via shoving appears in WYSIWYG mode. Because vias typically exist on many layers of a design, elements on layers other than the active (visible) layer become visible when acted upon by a shoved via. Figure 3-7 shows how a design in non-shadow mode displays etch when acted upon by a shoved via. Figure 3-7 Shoved Via Display Characteristics Original conguration Via hopping over cline Horizontal cline moving toward via Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 33 Product Version 16.0 In the left design no vias have been shoved. The design displays the vias and connect lines on the active layer. The right design shows when the via at the center of the picture has been shoved upward by the addition of a newly added connect line. All the affected traces on the hitherto invisible layer become visible. Figure 3-7 shows the default display behavior. You can modify the display of this information by conguring which layer is active and which layers are visible and by setting shadow mode and the bubble_no_display_invisible environment variable. See Setting Visibility During Interactive Routing for details on these visibility options. Using the slide Command in Bubble Mode When you modify existing etch during interactive routing, you can use the two bubble mode optionshug- or shove-preferredto assist you in avoiding DRC errors. Use hug-preferred mode when you want to model the etch you are sliding to other etch. Use shove-preferred mode when you want the etch you are sliding to move other etch out of its path. Using the add_connect Command in Bubble Mode When you add new etch during interactive routing, you can use hug- or shove-preferred or hug-only bubble mode to avoid creating DRC errors. Use hug-preferred mode to place routes as closely as possible to existing routes. Use hug-only mode to contour without changing other etch objects Use shove-preferred mode to route through a path blocked by other clines. To ensure that existing critical clines meeting your requirements remain unchanged, choose Edit Properties (property edit command) or use the toolbar icon to attach the FIXED property to these clines after you complete the route. Guidelines Hug and shove-preferred bubble modes are not auto-routing modes. When in these modes, Allegro PCB Editor does not always locate the optimal path fromone point to another. It starts with the line lock-based segments that go from the last pick to the cursor. It then attempts to correct any spacing violations by hugging or shoving etch. Consequently, as you use the shove-preferred and hug modes, the Line Lock and toggle settings are critical. You can access the toggle options from the pop-up menu. Note that setting the Line Lock eld to Arc disables bubble mode. Conversely, enabling bubble mode (to either hug-preferred or shove-preferred mode) sets the Line Lock eld to Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 34 Product Version 16.0 Line to prevent adding arcs while in shove/hug mode. Shoving or hugging existing arcs is not supported. During hug or shove-preferred routing, excessive delays typically indicate the result may be undesirable. To maximize performance when you use bubble modes during etch editing: I Avoid particularly dense or complicated or both types of regions. I Do not shove many traces simultaneously. I Minimize distances between selections to preclude crossing constraint-area boundaries. If you do not like the result, you can try again by adding smaller amounts of etch with each pick. Adding Connections Choose Route Connect (add connect command) to add connections to a design interactively. You can add etch interactively before or after automatic routing. Before adding connections, you may want to familiarize yourself with some aspects of interactive routing: I Setting Visibility During Interactive Routing I Setting Visibility During Interactive Routing I About Bubble Mode For information related to time-sensitive connections, see Routing High Speed Circuits. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 35 Product Version 16.0 When you add connections using Route Connect (add connect command), Allegro PCB Editor displays the following tabs. I The Options tab lets you choose various routing controls. I The Find Filter lets you identify and choose pins, vias, and etch segments for routing. I The Visibility tab controls visibility of those elements as well as selection of visibility settings. For instructions on how to add a connect line, see the Route Connect (add connect command) section in the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 36 Product Version 16.0 Interactive Routing with Layer-set Constraints The add connect command lets you route nets that have layer-set constraints. Note: You can place layer-set constraints on nets, XNets, differential pairs, buses, or ECSets. The Options tab helps you to route with layer-set constrained nets in the following ways: I Displays the legal routing layer-set layers (also referred to as subclasses) in bold-faced type. I Automatically sets the Act (active) and Alt (alternate) drop-down list boxes to layers that are in the applicable layer sets. Tip Uncheck the Planes box in the Visibility tab to reduce the number of layers that appear in the drop-down list boxes of the Options tab. Allegro PCB Editor defaults to the layer closest to the initial active subclass setting. When you start routing on a net, the layer-set constraint and the existing clines determine the layer set that applies to the current route. In cases where the layer-set constraint contains more than one layer set, the pre-existing clines determine the legal layers for both the active and alternate subclasses. If no clines exist, all layers in all layer sets of the layer-set constraint are legal for the active and alternate subclasses. If you choose a layer-set subclass in the Act drop-down list box, Allegro PCB Editor displays the applicable alternate subclass in the Alt drop-down list box. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 37 Product Version 16.0 For example, in Figure 3-8, a 64-bit bus has a layer-set constraint that allows LS3-4 (layer set 3-4) and LS6-7 as legal routing layer sets. When you choose the rst element, the four layers contained in the two layer sets appear in bold-faced type in the Act and Alt subclass drop-down list boxes. For example, LS3-4 consists of layers Sig_3H and Sig_4V. LS6-7 includes layers Sig_6H and Sig_7V. The Act subclass defaults to Sig_3H, as a result of the previous setting of Top, and the Alt subclass becomes Sig_4V. After you pick the rst element and the Act subclass was previously set to Bottom, the default Act subclass is Sig_7V and the Alt subclass becomes Sig6-H. If you want, you can change the active layer to a layer from the second layer set (LS6-7) at the point of the initial pick. Figure 3-8 Picking the First Element LS3-4 LS6-7 Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 38 Product Version 16.0 When you add the rst cline, Allegro PCB Editor locks the routing on the LS3-4 set containing routing layers Sig_3H and Sig_4V. Subclasses Sig_6H and Sig_7V revert back to normal font in the Options tab, as shown in Figure 3-9. Figure 3-9 Committing to a Layer Set If a layer set does not include top and bottometch layers, then surface-mount pins associated with the layer set require pin escaping to access the legal routing layers. In this case, DRC ignores the etch from the surface-mount pin to the via. The accumulated amount of etch length on non-layer set subclasses appears in the Length column of the Electrical Constraint Spreadsheet. Caution Allegro PCB Editor does not prevent routing on an illegal layer; however, DRC reports an error. For additional information on layer-set constraints, see Layer Sets in the Allegro PCB Editor User Guide: Creating Design Rules. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 39 Product Version 16.0 Dening Line Width To determine the line width of the etch you add to the design, Allegro PCBEditor uses several locations to determine the width of each line segment (lines and arcs). An impedance rule can control width, and as with minimumline width, it can come fromthe constraint set (except when it is electrical) or from a property (IMPEDANCE_RULE) on the net. The net property overrides the constraint set impedance rule. The precedence is as follows: I If you type in a new line width in the Options tab during operation, it takes precedence over values at any other locations. See Overriding the Minimum Line Width Setting. I If the route is constrained by an impedance rule, a line width based on that impedance rule is used as long as that line width is greater than the minimum line width dened in the physical rule set. Line width, subclass, board materials, and cross-section affect impedance. I If the route is constrained by an impedance rule and a neck width greater than zero that allows the cline to meet the target impedance, necking is used and automatically adjusts to meet the target impedance. If the minimumneck width is zero, necking is not used, so the neck width is not considered for automatic width generation. Instead the minimum line width is the constraint limit to meet the target impedance. If the target impedance is not met, a DRC error occurs. I If no impedance rule exists, or if the width based on impedance is less than the minimum line width, the minimum line width is used. Note: Line widths that are derived from an impedance rule are rounded to the database accuracy. If database accuracy is greater than one decimal place, the resulting line width may not be an integer multiple of the base design unit; for example, 1 mil or 1 micron. Overriding the Minimum Line Width Setting By entering a new value in the Line width eld of the Options tab, you can override the minimumline width determined by an impedance rule on a property or by a constraint setting. If you are adding etch to an existing cline segment whose line width differs from that of the constraint/property setting, the new etch uses the width of the existing segment. This applies to new routes that extend a dangling cline or which tee into a cline. Unless you specify a width override in the Options tab and you connect from an existing segment, Allegro PCB Editor automatically uses the width of the existing segment. Table 3-3 shows behaviors that apply to minimum line width settings and manual overrides when you are connecting from existing segments. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 40 Product Version 16.0 Note: The override value remains in effect until you complete the connection task or click Reset in the Options tab. Reverting to Constraint-Set Minimum Line Width You can revert a manually overridden minimumline width to constraint/property settings. The the drop-down menu associated with the Line Width eld shows previous values that were set. If the current value in the eld is not the default value (the minimum line width) the drop- down menu shows an item called Default. Choosing this item resets the line width so that Allegro PCB Editor uses the minimum line width from the applicable physical constraint set. This feature replaces the Reset button. When you use this function, the following conditions occur: I The constraint/property-based minimumline width takes effect immediately and under all the conditions described above. I The Line width eld in the Options tab displays the constraint/property-based setting. Table 3-3 Line Width Behavior When Connecting from Existing Segments If... Then Allegro PCB Editor... You override the line width for an existing segment Uses the line value specied as an override for the connection. You begin a new route or route from an existing segment that does not have an override value Uses the line width setting dened in the constraint/property. You connect from other element types, such as pins, vias, or shapes Uses the minimum line width specied by the constraint/rule. This behavior, however, is partially dependent on the type of element selected and the element types selected in the Visibility tab. You add a via while a minimum line width override is in effect Reverts to its property constraint setting. The line width of an existing segment is less than the constraint-based line width Uses the constraint-based line width. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 41 Product Version 16.0 Cornering During interactive routing, you now have more control in cornering with arcs and 45-degree angles. If you set the Line lock option as Arc with 45 or 90 degrees, the radius controls appear. These controls let you specify a minimum or xed radius. If you set the Line lock option as Line with a 45-degree angle, the miter controls appear. These controls allow you to specify a minimum or xed miter size. Miter means that Allegro PCB Editor cuts a corner with a 45-degree angle. See Route Connect (add connect command) in the Allegro PCB and Package Physical Layout Command Reference for additional information. Adding Vias There are two types of vias: through-hole and blind/buried. You can add either type as part of a connection or as a stand-alone via. A stand-alone via is either a through-hole or a blind/ buried via that is not added to a particular connection. Through-hole Via A through-hole via penetrates all layers and allows a connection to travel between the top and bottom etch layers. To add a through-hole via, choose Route Connect (add connect command). The add connect command in the Allegro PCB and Package Physical Layout Command Reference describes the procedure. Through-hole via Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 42 Product Version 16.0 Blind Via A blind via travels between an outer layer and an inner layer. Buried Via A buried via travels between two internal layers. Dening Blind and Buried Vias Before you can add blind or buried vias to a design, rst create a blind or buried padstack. You can do this automatically by choosing Setup Vias Auto Define B/B Via (auto define bbvia command) or manually by choosing Setup Vias Define B/B (define bbvia command). You can also dene a via in the Padstack Designer by choosing Tools Padstack Modify Design Padstack (padeditdb command). To assign vias that you are going to use on a net for routing, choose Setup Constraints Physical, then in the Physical worksheet of Constraint Manager, click in the cell under the Vias column for the net and select the vias from the Edit Via List dialog box. These menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Blind via Buried via Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 43 Product Version 16.0 Editing Connections and Vias You can use menu items or routing commands described in the Allegro PCB and Package Physical Layout Command Reference to perform the tasks listed in this section. Moving or Sliding Connect Lines and Vias In menu-driven editing mode, choose Route Slide (slide command) to interactively move or edit connect lines, segments, or vias while maintaining their connectivity. You choose the element to move, then its destination. If you choose Temp Group fromthe pop-up menu, you can move multiple segments. If you choose Cut, you can move only a portion of a segment. Custom Smoothing of Connect Lines Choose Route Custom Smooth (custom smooth command) to optimize selected clines or cline segments according to parameters set in the Options tab. Smoothing the angles of clines or cline segments can minimize the distance to pad connections. Before you start, note that customsmoothing cannot be performed on clines or segments that contain DRC errors. You may need to performa DRC update and appropriate cleanup before using this feature. Deleting Connections and Vias Choose Edit Delete (delete command) to remove a connect line or segment or cut out a piece of etch and discard it. The original connection remains on the design with two dangling ends. You also use these methods to remove vias. Changing the Layer of a Connect Line Choose Edit Change (change command) to change the layer of a connect line. Creating or Moving Vertices Choose Edit Vertex (vertex command) to edit etch by creating a vertex or moving an existing one. While doing so, Allegro PCB Editor can dynamically correct DRC errors through the use of bubble capability similar to that which exists when you choose Route Connect (add connect command) and Route Slide (slide command). When you choose Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 44 Product Version 16.0 Edit Vertex (vertex command), bubble is active only when you are editing cline or etch line segments. Deleting Vertices Unlike other aspects of etch editing, you cannot view the results of deleting a vertex until the change has been made. To undo a deletion, click the right mouse button, and choose Oops from the pop-up menu. To avoid creating DRC errors when deleting vertices, deselect the Allow DRCs check box in the Options tab. Doing so prohibits you from removing any vertex that would generate DRC errors, and displays an error message at the console window prompt. To delete a vertex, choose Edit Delete Vertex (delete vertex command). Spreading Between Voids The Spread Between Voids feature spreads out the clines in a routing channel you specify. You can use this feature to correct return path issues that occur when clines overlap pad voids on adjacent layers. Typically, you apply the spreading function at the end of the design process after you complete routing, meet all other design constraints, and execute the highlight sov command to highlight any problems. You choose two objects (a combination of two pins, two vias, or one of each) that dene a routing channel. The clines within the channel are pushed toward voids found on adjacent planes. The spacing between routes is the largest minimumspacing for the group of clines in that channel. If the clines cannot space evenly, based on the spacing rule applied for spreading, then no spreading occurs. The following examples illustrate what happens to the clines using different void clearances. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 45 Product Version 16.0 Figure 3-10 Before Spreading Between Voids Figure 3-11 Spreading Between Voids with Zero Clearance Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 46 Product Version 16.0 Figure 3-12 Spreading Between Voids with 10 mil Clearance Routing High Speed Circuits Adding connections to high speed circuits in a design may make it necessary for you to use rat Ts and delay rules that are not present in other nets. Routing Rat Ts Rat Ts are logical database (not physical) objects that you can use to insert a branch in a net schedule at a point other than at a component pin. A rat Ts physical location is typically an approximate location for a T or a via in the nets interconnect. However, once located in the design, you can use the optimize_ts command to further optimize the location of rat Ts automatically. See the net schedule command for further details on working with rat Ts. To route rate Ts, choose Route Connect (add connect command), described in the Allegro PCB and Package Physical Layout Command Reference. Displaying Timing Feedback High-speed circuits often require timing constraints to ensure successful routing. Delay rules are timing constraint variations that you can attach to timing-sensitive nets. Allegro PCB Editor provides you with dynamic timing feedback on nets, extended nets (Xnets), buses, differential pairs, and pin pairs that have properties such as the following attached: Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 47 Product Version 16.0 I PROPAGATION_DELAY I RELATIVE_PROPAGATION_DELAY I TOTAL_ETCH_LENGTH See the Allegro Platform Properties Reference for the syntax of these properties. Dynamic timing feedback, a type of heads-up display, lets you determine if connections you are adding or modifying are within the acceptable timing parameters of the properties. The display updates as you route using the following commands: I add connect I delay tune I slide I vertex The feedback displayed shows you whether the etch you are adding or changing is within the acceptable range, determined by the values of the attached timing properties and the overall proposed etch of the interconnect. Proposed etch, as the add connect example shows in Figure 3-13, is the total of all interconnect between start and end points. It includes: I Existing etch (shown as old and new etch in Figure 3-13) I Dynamic etch (the rubberband display that appears as you move the cursor) I Expected etch (represented as a ratsnest line) Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 48 Product Version 16.0 Figure 3-13 Components of Proposed Etch Note: Proposed etch must provide at least some of the connection between pin pairs specied in attached timing constraints. For timing constraints on Xnets, pin pairs do not have to be part of the current net. In addition to the components of proposed etch described above, timing displays also take into account unrouted portions of a net (or other supported object). The calculation of unrouted portions of a proposed etch assumes routing at manhattan length with current line width on the current subclass. Timing constraints for pin pairs that are not connected (fully routed) have the following conditions: I Reference pin pairs of a RELATIVE_PROPAGATION_DELAY constraint are assumed to be routed at manhattan length and are assigned the default propagation velocity, which is dened on Interconnect Models tab of the Analysis Preferences dialog box, accessed by choosing Analyze SI/EMI Sim Preferences (signal prefs command). I Unreferenced pin pairs are ignored; no timing feedback is displayed. The Timing Feedback Window The dynamic timing feedback windowis an Allegro PCBEditor heads-up display that provides feedback on how well you satisfy timing constraints when editing an electrically-constrained net. These constraints include properties such as PROPAGATION_DELAY, RELATIVE PROPAGATION_DELAY, TOTAL_ETCH_LENGTH, and so on. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 49 Product Version 16.0 Figure 3-14 shows the basic components of the timing feedback window, and the sections below the gure describe the components. Figure 3-14 Dynamic Timing Feedback Window Color Indicator The frame of the window and the slide bar show a color representing one of the following conditions. Allegro PCB Editor uses the length of the current etch plus the estimated manhattan distance of the unrouted segment when determining these conditions. Numeric Output The top of the window shows text representing the timing constraint and the numeric output of the timing margin. The display changes as you add, subtract, or move dynamic etch (the interconnect that changes as you move the cursor). The numeric output display has the following characteristics: I The displayed value of the timing margin is in length user units of the design (mils, inches, and so on). Color Description Green Indicates that the current etch is within the minimum/maximum constraint range. Red Indicates that the current etch is not within the minimum/maximum constraint range. Yellow Indicates that you have a violation, but possibly, it can be corrected by a different as yet unrouted connection. Property name and numeric output Sliding meter bar RDly +14 Color indicator Minimum and maximum constraints Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 50 Product Version 16.0 I The margin is relative to either the minimum or maximum timing constraint, depending on which makes a smaller value. In Figure 3-14, the margin value (+14) is relative to the minimumtiming constraint, so it appears on the left side of the display. When the margin is relative to the maximum timing constraint, the value appears on the right side. I The margin value displays a decimal accuracy based on the accuracy settings in the Design tab of the Design Parameter Editor, available by choosing Setup Design Parameters (prmed command). The maximumnumber of digits after the decimal point in the display is the same as the value in the Design tab of the Design Parameter Editor. However, trailing zeros to the right of the decimal point are suppressed. Sliding Meter Bar The bottom of the window has a meter bar that slides to the right as you increase the proposed etch length. The meter bar has these characteristics: I Vertical lines represent the minimum and maximum timing constraint values. If either a minimum or maximum timing constraint is not set, then only one line, representing the constraint that is set, appears. I The meter reaches its maximum extent to the left or right if the proposed etch extends too far outside the acceptable range. Beyond that point, you must read the numeric output for valid data. Figures 3-15 and 3-16 show the timing display for conditions when there is only a minimum value set for the constraint setting. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 51 Product Version 16.0 Figure 3-15 Red Condition Delay Less Than Minimum Value Figure 3-16 Green Condition Delay Satises the Minimum Value Figures 3-17 and 3-18 show the timing display for conditions when there is only a maximum value set for the constraint setting. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 52 Product Version 16.0 Figure 3-17 Red Condition Delay Exceeds Maximum Value Figure 3-18 Green Condition Delay Satises the Maximum Value Figures 3-19 through 3-21 show the timing display for conditions when both minimum and maximum values are set for the constraint setting. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 53 Product Version 16.0 Figure 3-19 Red Condition Delay is Less than Minimum Value Figure 3-20 Red Condition Delay Exceeds Maximum Value Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 54 Product Version 16.0 Figure 3-21 Green Condition Delay Is in Acceptable Range for Both Min/Max Values Target Net Identied in Matched Groups If you create a matched group using relative conditions, for example, delta:tolerance, the word Target is assigned to the member with the longest manhattan length. The letter T has been added to the heads-up display (see below) to indicate that the net being editing is the target net of a relative matched group. Note: To obtain this feedback, you must dock the heads-up display. Docking the Heads-Up Display in the Options Tab To dock the heads-up display, choose Setup User Preferences from the Allegro PCB Editor menu bar, then choose Etch and enable the allegro_dynam_timing_fixedpos environment variable. When you dock the heads-up display in the Options tab in newer versions of Allegro PCB Editor, each length or timing constraint margin displays its own meter. Figure 3-22 shows the tuning of a differential pair with phase control, relative delay and propagation delay rules. The multiple heads-up display shows that only relative delay conditions are in violation. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 55 Product Version 16.0 Figure 3-22 Multiple Heads-Up Display Meters Turning Off the Timing Feedback Window If you do not want to automatically display feedback on timing-sensitive circuits, set the allegro_dynam_timing environment variable, located in the Etch category in the User Preferences Editor, to off. Choose Setup User Preferences (enved command) to access the User Preferences Editor. If you are viewing etch length feedback on circuits that do not have timing constraints attached, using Route Connect (add connect command) displays only that information until you unset the variable. For additional information, see Displaying Etch Length. Displaying Timing Feedback With Constraint Manager If you are working with Allegro PCB Editor supporting simulation, you can viewdetailed timing feedback using Constraint Manager. This may be required in instances when complicated timing situations make it difcult for you to route a net using only a worst case feedback display. Note: This section describes only the procedure for viewing timing feedback in Constraint Manager. For complete information on Constraint Manager, see the Constraint Manager documentation. To display timing information in Constraint Manager: Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 56 Product Version 16.0 1. Choose Setup Constraints Electrical (cmgr_elec command) to open the Electrical worksheet of Constraint Manager. 2. In the tree view, expand the Net folder and then the Routing icon. 3. Open the timing worksheet appropriate to the timing constraint you are using. For example: Min/Max Propagation Delays, Relative Propagation Delay. 4. As an optional step, you can use the pop-up menu in the Objects header of the worksheet to open a Filter dialog box. a. Check Selected nets/xnets only. b. Click Apply. c. Click Close. While you are editing the net, its Constraint Manager object is highlighted. If you chose the Filter option, only the net you are editing appears. Figure 3-23 shows the Constraint Manager worksheet for a timing-sensitive net. Filtering is used to display only the active net. Figure 3-23 Constraint Manager Worksheet Highlight Limitations I Only nets with timing constraints are highlighted in the Constraint Manager. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 57 Product Version 16.0 I Constraint Manager has to be open before you begin editing the net for information in the worksheet to be highlighted. I Only nets and extended nets are highlighted, not pin pairs, differential pairs, or bus objects. I Differential pair length tolerance is not supported. Displaying Etch Length When you choose Route Connect (add connect command), you can receive dynamic feedback on the length of the etch you are adding. The feedback appears when you set the allegro_etch_length_on environment variable in the Etch category of the User Preferences Editor. Choose Setup User Preferences (enved command). The Dynamic Length window displays the names of the design objects logically connected; for example, ADDR4T.1 (a connect point) to U13.11 (a pin). The Dynamic Length windowdisplays when you have nets that do not have timing constraints attached to them or because you have set the allegro_dynam_timing environment variable to off. See Displaying Timing Feedback for information on nets with timing constraints attached to them. Figure 3-24 shows the Dynamic Length window. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 58 Product Version 16.0 Figure 3-24 Dynamic Etch Length Display Generating a Delay Information Report You can generate a le of net delay information in Veritools Standard Delay Format (SDF) containing compensated switch and settle delays, and rise and fall propagation delays. To extract SDF wire delay data, run the a2sdf batch command, described in the Allegro PCB and Package Physical Layout Command Reference. Delay Tuning Nets containing minimumpropagation delay, minimumtotal etch, or relative delay rules often require additional compensation etch to meet these respective constraint conditions. Today, most designs require levels of delay matching between groups of signals, either signals in a data bus or groups of differential pairs. For high-speed serial interfaces, such as PCI Express, the differential pair should be kept in phase across its entire length and not just at the gather points. Allegro PCB Editors new interactive tuning capability lets you select and control the delay matching style, with the supported accordion, trombone, or sawtooth (preferred for PCI Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 59 Product Version 16.0 Express) elongation styles, and control gap and amplitude. You can also choose the exact area or areas for tuning. The real-time heads-up display provides direct feedback to guide you during tuning. Once you determine the violations, either through visible DRC markers or from Constraint Manager information, you can interactively adjust etch length on your delay-constrained nets or differential pairs to match the required delay on the net. To create the delay tuning area, called the elongation rectangle, place your cursor on the line segment that you want to tune. Click the mouse and then using the heads-up display feedback as a guide, move your cursor toward the location that gives the specied results. The elongation rectangle appears, displaying the location, amplitude, and length of the delay tuning area. When you are satised with the results, click the mouse to complete tuning. Elongation Styles Figure 3-25 shows the accordion elongation style. Figure 3-25 Accordion Elongation Style Figure 3-26 shows the trombone elongation style. Elongation Rectangle Gap A m p l i t u d e Mouse Pick Cursor Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 60 Product Version 16.0 Figure 3-26 Trombone Elongation Style Figure 3-27 shows the sawtooth elongation style. Figure 3-27 Sawtooth Elongation Style Although Allegro PCB Editor ignores constraint areas during delay tuning, you can perform separate elongations on each side of the constraint boundary. Allegro PCB Editor uses the width of the selected cline segment for the entire elongation etch. If you specify a gap or corner size using N times the line width, the calculation is based on that same width. Elongation Rectangle G a p Amplitude Mouse Pick Cursor Elongation Rectangle Gap A m p l i t u d e Mouse Pick Cursor Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 61 Product Version 16.0 For additional information on delay tuning, see delay tune. For information on the heads-up display, see Displaying Timing Feedback. Differential Pairs Delay tuning for differential pairs is similar to single net delay tuning. You select the cline segment with a cursor pick, and you dene the amplitude and direction with the mouse position. The elongation gap requires that the innermost parallel lines of the elongation pattern have the required gap clearance. If the selected cline segment is not currently coupled or if you have set single trace mode, then Allegro PCB Editor elongates the selected net. When you specify corners, the value applies to the inner segment. For additional information on routing differential pairs, see Interactive Routing for Differential Pairs. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 62 Product Version 16.0 Interactive Routing for Differential Pairs Differential pair routing applies to edge coupled differential pairs. An edge coupled differential pair consists of two signals that are routed side-by-side on the same layer. You can perform routing on the differential pairs after you set up the nets as a differential pair. See Designating Nets as Differential Pairs and Dening Differential Pairs by Layer in the Allegro PCB Editor User Guide: Creating Design Rules for information on setting up differential pairs. Once you set up the differential pair, you can route the paired nets concurrently (default) or in single trace mode. When you concurrently route or edit two nets of a differential pair, the specied net is routed or modied while the companion net automatically follows. For information on the values the Allegro PCB Editor uses in routing, see How the Allegro PCB Editor Uses Constraint Values in Routing and Checking Differential Pairs in the Allegro PCB Editor User Guide: Creating Design Rules. Single Trace Mode You can also individually route or edit the nets of a differential pair using single trace mode. All the etch edit commands that support concurrent differential pair routing or editing let you enter and exit single trace mode during routing or editing. When you turn on single trace mode, the companion net is immediately dropped. Turning off single trace mode results in differential pair routing or editing as long as Allegro PCB Editor can identify the companion net. For information on turning single trace mode on and off, see the Pop-Up Menu Options section in the add connect command section of the Allegro PCB and Package Physical Layout Command Reference. Figure 3-28 shows the routing of a differential pair. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 63 Product Version 16.0 Figure 3-28 Unnished Routing of Differential Pair You can manually route differential pairs by choosing Route Connect (add connect command). Once you pick a starting point a pin, via, cline, rat, or rat T on a net, Allegro PCB Editor determines whether the net is part of a differential pair, nds a starting point on the companion net, and enters concurrent routing mode. Figures 3-29 and 3-30 showthe options available on the Options tab when routing differential pairs. For descriptions of the elds on the Options tab, see the Route Connect (add connect command) section of the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 64 Product Version 16.0 Figure 3-29 Options Available with Routing Differential Pairs Via pattern indicator showing Differential pair indicator Miter size Field is available when Line lock is set to Line Miter setting (minimum or xed) and angle setting is Diagonal Down pattern 45 degrees. Smoothing disabled for differential pair routing Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 65 Product Version 16.0 Figure 3-30 Options Available with Routing Differential Pairs The following sections detail manual routing for differential pairs: I Setup and Editing Differential Pairs Using the Etch Edit Tools I Gathering and Splitting Setup and Editing Differential Pairs Using the Etch Edit Tools This section describes how Allegro PCB Editor routes and edits differential pairs. Topics include: I Line Spacing I Cornering Radius size Field is available when Line lock is set to Arc and angle setting is Radius setting (minimum or xed) 45 or 90 degrees. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 66 Product Version 16.0 I Grid Snapping I Route Necking I Single Trace Mode I Slide Line Spacing In handling line spacing for differential pairs during concurrent routing, Allegro PCB Editor uses the values described in How the Allegro PCB Editor Uses Constraint Values in Routing and Checking Differential Pairs in the Allegro PCB Editor User Guide: Creating Design Rules. It also uses the values of Line To Via and Via To Via from the applicable spacing constraint set for spacing between vias to lines and vias to vias. You can also control the via to via spacing when you are in the add connect mode and enable via pattern spacing. For additional information about setting the values specied in this section, see the Setup Constraints Electrical (cmgr_elec command), Setup Constraints Physical (cmgr_phys command), and Setup Constraints Spacing (cmgr_spac command), sections of the Allegro PCB and Package Physical Layout Command Reference. Figure 3-31 shows how Allegro PCB Editor gathers traces during differential pair routing. The line lock is 45 degrees in the differential pair on the left side of the gure and 90 degrees in the differential pair on the right side of the gure. Figure 3-31 Differential Pair Spacing Allegro PCB Editor tries to maintain the specied gap value during routing and editing except when you choose Route Gloss (gloss command). Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 67 Product Version 16.0 Cornering With Release 15.0, you now have more control in cornering with 45-degree angles and with arcs. During editing of differential pairs, based on your options, the specied minimum value for corner size applies unless you specify a miter size. When you specify a minimum or a xed corner size, it applies to the inner trace. If you enable the Line lock option as Line with a 45-degree angle, the corners are mitered even when you position the cursor for a 90-degree turn. Allegro PCB Editor uses the miter size you specify in the Options tab. Figure 3-32 shows an example of mitering. For additional information, see Cornering. Figure 3-32 Mitering Example You can use arcs to corner differential pairs. For concurrent differential pair editing, Allegro PCB Editor properly nests the arcs while turning the corner. The nested arcs have a common center point. The trace on the outside of the corner has a larger radius, providing the proper gap for the differential pair. Figure 3-33 shows an example of cornering with arcs. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 68 Product Version 16.0 Figure 3-33 Cornering with Arc For interactive routing, you can specify the value to be used for smaller radius, either as a minimum or as a xed radius. Bubble mode is automatically disabled for interactive routing with arcs. Grid Snapping The specied net of the differential pair snaps to the specied grid when it can. This means that even if you have specied Gridless during setup, Allegro PCB Editor tries to put at least one of the differential pair traces on grid without causing unnecessary bends or rules violations. When routing differential pairs, the primary gap separation takes precedence over grid snapping. Route Necking Neck mode during differential pair routing allows you to route with reduced line width and gap (specied by the Neck Gap and Neck Width parameters) to keep the differential pair impedance. Allegro PCB Editor remains in neck mode as long as you continue with the current route. See Figure 3-34. For additional information, see the Pop-Up Menu Options section in the add connect command section of the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 69 Product Version 16.0 Figure 3-34 Neck Mode Single Trace Mode Sometimes, you must route in single trace mode to get around obstacles and complete the differential pair route. During routing or editing of differential pairs, when you enter single trace mode for one command, it causes all the other commands to operate in single trace mode until you turn it off or open another board. When you open another board, the current mode is the one that was in effect when the board was saved. So if you saved a board with single trace mode turned on, when you open the board again, single trace mode is automatically turned on. For additional information, see Using Single Trace Mode With Differential Pairs in the Route Connect (add connect command) section of the Allegro PCB and Package Physical Layout Command Reference. Figures 3-35 and 3-36 showhowsingle trace mode works with differential pair routing. Figure 3-35 shows that if you position the cursor close to a cline segment of the companion net during single trace mode, the route endpoint snaps to a point that is spaced from the companion net segment by the specied gap value. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 70 Product Version 16.0 Figure 3-35 Differential Pair Snapping During Single Trace Mode Figure 3-36 shows that if you choose a companion net while in single trace mode, Allegro PCB Editor follows the route of the rst net, while maintaining the specied gap value. Figure 3-36 Differential Pair Follows Route Gathering and Splitting During routing, Allegro PCB Editor automatically gathers routes when they do not meet the specied gap value. Gathering is the point where the two nets of the differential pair meet the specied gap value within tolerance for the rst time. Allegro PCB Editor also splits routes, when necessary, to avoid obstacles or connect with the destinations (vias, pins, and so on). Splitting automatically occurs when you position the cursor at the specied net's destination, unless the destination connect points are spaced by the differential pair gap. Allegro PCB Editor then attempts to route the companion net to its destination. If Allegro PCB Editor cannot route the companion net, it automatically enters single trace mode. Then you can nish routing the specied net, followed by the companion net, without having to turn on and turn off single trace mode. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 71 Product Version 16.0 Allegro PCB Editor gathers together or splits the nets of a differential pair during these times: I Routing to and from Pins or Vias I Routing with Vias I Encountering Obstacles During Routing Routing to and from Pins or Vias When routing to and from pins or vias, Allegro PCB Editor determines the gather point as close to the pins as possible, while adhering to cornering requirements and good pad entry practices. If Allegro PCB Editor is unable to gather close to the pins because it would result in a DRC violation, it gathers near the positioned cursor where you dene the gathering or splitting point. To lock in the gathering location, you must make a pick. When splitting, the last pick denes the split location. Finally, if you prefer, you can individually route the nets to or from a gather point using single trace mode. This gives you the most control over the routes to the gathering points, but you have to individually route each signal to or from the gathering point. Routing with Vias During routing with differential pairs, Allegro PCB Editor splits the routes and adds two vias concurrently. While you are in add via mode: The two vias connected to the differential pair traces move or oat with the cursor. For information on adding vias, see Adding a Via to a Differential Pair in the Procedures section of the Route Connect (add connect command) section of the Allegro PCB and Package Physical Layout Command Reference. Although the vias move with the cursor, the via pattern remains the same. For additional information on via patterns, see Via Patterns. You can see the effects of bubble as you specied in the Options tab. You must pick to place the vias. Routing continues with traces gathering as soon as possible. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 72 Product Version 16.0 Via Patterns Allegro PCB Editor supports four styles of via patterns. To change a pattern directly, choose a new pattern from the pop-up menu. Allegro PCB Editor remembers the values and uses themthe next time you add vias. For information on changing via patterns, see Changing Via Patterns and Pop-up Menu Options in the add connect command. Figure 3-37 shows examples of the patterns. Figure 3-37 Diagonal Down, Diagonal Up, Horizontal, and Vertical Via Patterns Via Spacing Allegro PCB Editor supports three options for via spacing with differential pairs. You can set the spacing for vias using the Differential Pair Via Space dialog box. For additional information, see Changing Via Spacing Using the Diff Pair Via Space Dialog Box described in the Route Connect (add connect command) section in the Allegro PCB and Package Physical Layout Command Reference. Encountering Obstacles During Routing Differential pair nets are gathered or split when the pair of nets cannot get by as a unit (see Figure 3-38). This can result when you turn on bubble mode. The split lasts as long as obstacles continue to prevent the signals from coming back together. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 73 Product Version 16.0 Figure 3-38 Gathering and Splitting Slide The slide feature supports the differential pair as a single object. For each operation listed below, Allegro PCB Editor needs to be able to identify the companion net. If you choose elements from multiple nets, Allegro PCB Editor slides these nets and maintains relative spacing between each element. I If you choose a segment of a differential pair net, Allegro PCB Editor chooses those segments. The segments slide together, maintaining the applicable differential pair gap. I Using the Cut option (unavailable in pre-selection use model), you can slide a piece of a line segment on the specied net and a compatible segment on the companion net. The two cut segments slide together. I Differential pair T sliding is enabled if the pair of physical Ts are associated with Rat Ts. Then the Ts move together with the attached etch. If you choose a physical T and there is no Rat T, the corresponding segments of the differential pair companion move with the specied tracks, but the corresponding T remains in place. You can use the Group Slide feature to move the physical Ts together. I If you choose a via connected to a differential pair, Allegro PCB Editor also chooses the companion via. The vias slide together, maintaining the original pattern and space, unless Bubble mode moves them to x a spacing violation. I If you choose a segment that connects to a via, and you enable Vias with Segments in the Options tab, the via slides with the segment. If the segment is coupled with a segment on the companion net, the corresponding via on the companion net also slides. Figure 3-39 shows how vias slide when part of a differential pair. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 74 Product Version 16.0 Figure 3-39 Sliding of Differential Pair Vias Interactive Group Routing With Release 15.2, all tiers of Allegro PCBEditor support interactive group routing. Interactive group routing is the routing of more than one net concurrently. You can use this feature when routing a bus with traces that follow the same path and have common physical and electrical rules. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 75 Product Version 16.0 To specify the nets for group routing, select the elements (such as clines, pins, vias, and ratsnests) from which to route either by using the Temp Group option from the add connect pop-up menu or selecting the elements with a window. Routing proceeds from the selected elements. Note: You can initiate a route by selecting ratsnest lines provided that you have enabled Ratsnests in the Find Filter. To reduce the incidence of accidental ratsnest selection, the editor ignores the ratsnests if you also select other types of elements. Note: If you are routing from a component with a complicated pin pattern, route from each pin to a location outside the component area. Then group the routes together (outside the component area) in the order that you want to route them as a group that is , organize the routes outside the component area so that the Allegro PCB Editor can order and space them properly. For additional information, see Performing Group Routing in the add_connect command section. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 76 Product Version 16.0 The following topics describe how group routing works: I Routing Spacing I Control Trace I Cornering I Snapping and Hugging I Routing in Single Trace Mode I Routing with Vias Routing Spacing When group routing, you can change the spacing mode between traces to one of the following: I Current I Minimum DRC I User-dened Note: Spacing mode is supported only in Allegro Series 600, and Allegro SI. When you choose Current mode, which is the default mode, traces continue at the same spacing with which they started. No gathering or splitting is done unless there is a line-width change. Differential pairs gather, if necessary, to maintain the differential pair gap. When you choose Minimum DRC mode, adjacent traces are separated by the line-to-line space specied in the applicable spacing constraint set. Traces fromthe same differential pair traces are spaced by the applicable differential pair gap. You can specify a value for spacing between the traces when you choose User-defined and then enter a spacing value. For any trace pair, if the spacing value you specify is less than the Minimum DRC spacing value, the Minimum DRC spacing value is used instead of the specied value. Traces from the same differential pair are always spaced by the differential pair gap. Allegro PCB Editor performs gathering or splitting when you change the spacing value. For additional information, see Changing the Spacing Mode During Group Routing in the Allegro PCB and Package Physical Layout Command Reference: A Commands. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 77 Product Version 16.0 Gathering and Splitting Gathering and splitting during group routing occurs when the spacing of your traces does not match the value specied by the spacing mode, for example, the line width changes because you modied the Options tab of the Control Panel or you switched to neck mode. Note: Gathering and splitting are supported only in Allegro Series 600, and Allegro SI. Control Trace During group routing, the editor chooses one of the traces as the control trace. The control trace routes to the cursor location and the other traces follow along with it. You can identify the control trace by the X at the dangling end of the control trace near the cursor. To determine which trace is the control trace, the editor uses the following: I If you choose Temp Group fromthe pop-up menu when selecting the elements for group routing, Allegro PCB Editor chooses the rst element as the control trace. I If you select elements with a window, Allegro PCB Editor chooses the trace closest to the nish point of the selection box as the control trace. You can change the control trace for routing when you choose Change Control Trace from the add connect pop-up menu. For additional information, see Performing Group Routing in the Allegro PCB and Package Physical Layout Command Reference: A Commands. Cornering Interactive group routing uses the Miter and Radius controls in the Options tab. As with differential pairs, the Min or Fixed corner size applies to the inner trace. The control trace corner size adjusts to a larger value if it is not the inside trace of the corner. Snapping and Hugging During group routing, snapping and hugging occurs as it does with differential pair nets. The snap-to- or hug-to-cline is established by positioning the cursor close to the cline. This is enabled unless you set Bubble mode to Shove preferred. To use this feature, you must set the control trace to the trace in the group that is closest to the snap-to or hug- to cline. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 78 Product Version 16.0 Routing in Single Trace Mode Single trace mode allows you to suspend concurrent routing in favor of routing a single trace of the group. This is helpful for drilling to a different layer or for connecting into or out of a component, for example, getting in and out of a BGA. Single trace mode during group routing works in a similar manner as single trace mode for differential pairs. When you switch to single trace mode, the companion nets are immediately dropped. Routing continues with just the control trace fromthe same route-frompoint. To change the trace used in single trace mode, choose Change Control Trace from the pop-up menu. When you switch from single trace mode to group routing, the current trace becomes the group route control trace. When you switch to group routing after adding single trace routes, the other traces either snuggle up to the control trace to catch up to the endpoint of the control trace or are trimmed back to the endpoint of the control trace, depending on which net extends farther. Single trace mode resets at the beginning of the route, that is, you always start out in multi- trace mode. Note: Single trace mode is supported only in Allegro Series 600, and Allegro SI. For additional information, see Using Single Trace Mode During Group Routing in the Allegro PCB and Package Physical Layout Command Reference. Routing with Vias During group routing, you can only add vias when in single trace mode. Generating Reports on Interactive Routing You can use the following reports to evaluate the current routing status: I Summary Drawing Report, which provides overall progress information about the design. At any point in the process, you can check on: Connection statistics The number of connections made Shape statistics I Unconnected Pins Report, which helps you to locate missing connections. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 79 Product Version 16.0 To generate a routing report from Allegro PCB Editor, choose Tools Reports (reports command). Information about this menu item and commands are described in the Allegro PCB and Package Physical Layout Command Reference. About Power and Ground Ratsnest Scheduling To ensure total connectivity of power and ground pins without cluttering the design with rat displays, assign POWER_AND_GROUND to the RATSNEST_SCHEDULE property. Adding this power schedule to a net results in the display of a boxed X gure at unconnected pins or the end of dangling connect lines (clines) off the pins. You are thus able to more easily view power and ground pin disconnects without attaching the NO_RAT property to the net. In previous versions, it was recommended that you attach the NO_RAT property to these types of nets to reduce performance issues associated with ratsnesting algorithms on large pin-count nets. Attaching the POWER_AND_GROUND schedule on power and ground nets lets you discontinue using the NO_RAT property. Note: The POWER_AND_GROUND schedule can only be used on nets with the VOLTAGE property attached. In addition, you cannot add a BUS name to a name containing POWER_AND_GROUND. Additionally, unlike other ratsnest schedules, you cannot set POWER_AND_GROUND in an electrical constraint set (ECSet). The boxed-X display is controlled by the settings in the Display Show Rats and Display Blank Rats commands and in the Display settings of the Color and Visibility dialog box. The color and color priority of the displays are identical to those of the ratsnest objects and appear in the same size as the composite extents of the closest pin. Important POWER_AND_GROUND scheduling is not supported in pre-14.2 versions. Additionally, ratsnesting will no longer default to POWER_AND_GROUND ratsnesting on a VOLTAGE net if there is an explicit MIN_DAISY_CHAIN schedule attached. In versions prior to 15.1, POWER_AND_GROUND was defaulted to even when MIN_DAISY_CHAIN was specied. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 80 Product Version 16.0 Setting POWER_AND_GROUND This section provides an example in the form of a procedure for attaching the POWER_AND_GROUND schedule to a ground (GND) net, and illustrates the result of that action under typical conditions. This procedure is identical for attaching any ratsnest algorithm. 1. Choose Edit Properties (property edit command). 2. Attach the VOLTAGE property to the net with a value. 3. Attach the RATSNEST_SCHEDULE to the net and set the value to POWER_AND_GROUND. Procedures and dialog boxes for these menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. The net that you attach the schedule to displays the boxed-X gures on any unconnected pins, as shown in Figure 3-40. In this example, U3 on active class ETCH, subclass GND is fully connected, therefore no pins display the boxed-X display. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 81 Product Version 16.0 Figure 3-40 Boxed X Warnings on Unconnected Pins 4. Choose Setup Design Parameters (prmed command) to display the Design Parameter Editor. 5. In the Display tab, set Ratsnest points to Closest endpoint, and click OK to save the change. 6. Choose Route Connect (add connect command) to add some etch from an unconnected power rat pinin this example, the ground pin in U1. The menu item and command are described in the Allegro PCB and Package Physical Layout Command Reference The boxed-X display appears at the end of the dangling cline, as shown in Figure 3-41. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 82 Product Version 16.0 Figure 3-41 Warning Display on Dangling Cline 7. Choose Display Element (show element command) and choose the gure at the end of the cline on the U2 ground net. The ShowElement dialog box in Figure 3-42 shows the lower left coordinates of the U2.7 display point (the other rat end being arbitrary). The net is labeled power or ground ratsnest. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 83 Product Version 16.0 Figure 3-42 Show Element Data 8. Choose Setup Design Parameters (prmed command) to display the Design Parameter Editor to reset the Ratsnest points option to Pin to pin. As shown in Figure 3-43, the display reappears on the ground pin. Allegro PCB Editor User Guide: Routing the Design Interactive Routing June 2007 84 Product Version 16.0 Figure 3-43 Boxed-X Display on Ground Pin Allegro PCB Editor User Guide: Routing the Design June 2007 85 Product Version 16.0 4 Prerequisites for Allegro PCB Router Automatic Routing This chapter provides information on setting up prerequisites for the Allegro PCB Router used with Allegro PCB Editor. Some of the prerequisites may apply to third-party routers. Where specics differ, consult the user documentation for the specic router. For detailed information on Allegro PCB Router, refer to the Allegro PCB Router User Guide and Allegro PCB Router Command Reference. This chapter does not document the Allegro PCB Editor routing commands or user interfaces for the Allegro PCB Router. For information on auto routing with Allegro PCB Router from Allegro PCB Editor, see Chapter 7, Automatic Routing with Allegro PCB Router. Note: Automatic routing is not available in all Allegro PCB Editor versions. General Routing Prerequisites Table 4-1 shows general prerequisites, recommendations, and optional considerations for Allegro PCB Router as well as many third-party automatic routing tools. The table also provides pointers to the areas of the user guide that detail each process. Table 4-1 Prerequisites for Automatic Routing Prerequisite Automatic Routing For details, see... Dene nets in netlist Required Writing a Allegro PCB Editor Netlist in the Allegro PCB Editor User Guide: Transferring Logic Design Data Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 86 Product Version 16.0 Schedule nets in netlist Recommended Scheduling a Net in the Allegro PCB Editor User Guide: Transferring Logic Design Data Load netlist Required Creating a Database in the Allegro PCB Editor User Guide: Transferring Logic Design Data Place components Required Chapter 3, Placing Elements Manually, in the Allegro PCB Editor User Guide: Placing the Elements Dene etch subclasses Required How Etch Shapes Affect Routing in the Allegro PCB Editor User Guide: Preparing the Layout Dene etch width Required Dening Line Width Dene route grid (This can be done either in Allegro PCB Router or with Allegro PCB Editors auto_route command) Required Specifying Grids in the Allegro PCB Editor User Guide: Getting Started with Physical Design Verify layer information Recommended Working with Cross Section Layers in the Allegro PCB Editor User Guide: Preparing the Layout Dene route keepin Required Keepin and Keepout Areas in the Allegro PCB Editor User Guide: Preparing the Layout Dene blind and buried vias As needed Dening Blind and Buried Vias Table 4-1 Prerequisites for Automatic Routing Prerequisite Automatic Routing For details, see... Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 87 Product Version 16.0 Grids and Automatic Routing Allegro PCB Editor automatic routers typically place connections on grid locations. The only time etch is placed off grid is: I When you run a pattern router I When you connect to off-grid pins The spacing of routing grids, together with etch width and spacing of etch and pads, determines how efciently etch is placed on the design. Grids are one of the critical variables to check when results do not meet expectations. In addition to routing grids, via grids dene where vias can be located during executions of a via router, DRC router, and delay router. Dene route and via keepouts As needed Keepin and Keepout Areas in the Allegro PCB Editor User Guide: Preparing the Layout Dene constraint sets for design rule checking Required Chapter 3, Working with Constraints, in the Allegro PCB Editor User Guide: Creating Design Rules Assign properties to nets and components As needed Chapter 3, Working with Constraints, in the Allegro PCB Editor User Guide: Creating Design Rules Dene via padstacks As needed Chapter 3, Layout Padstacks, Vias, and Etch Shapes in the Allegro PCB Editor User Guide: Preparing the Layout Table 4-1 Prerequisites for Automatic Routing Prerequisite Automatic Routing For details, see... Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 88 Product Version 16.0 Dening Routing Grids Allegro PCB Editor lets you interactively dene a variable routing grid and a different grid for each etch subclass by choosing the Display tab of the Design Parameter Editor, available by choosing Setup Design Parameters (prmed command), described in the Allegro PCB and Package Physical Layout Command Reference. If using Allegro PCB Router, you must set the grid within the router. You can dene a variable grid for etch subclasses by entering multiple spacing values. Variable grid points are spaced by the values in the sequence you provide. After the last value has been used, the series repeats from the rst increment value, as shown in the following example: Via Grids You set via grids in Allegro PCB Router or in the Via Grid section of the Automatic Router dialog box when you choose Route Route Automatic (auto_route command), described in the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 89 Product Version 16.0 Controlling How Vias Are Used During Routing Note: For successful routing results, Cadence recommends that the only shapes on planes during routing be negative solid shapes. Routing does not put vias through crosshatched and positive shapes. Do not add positive shapes or any kind of crosshatched shapes until you are ready to generate artwork. Dening Vias for Use During Routing You assign the vias you will use during routing in the Vias column of the Physcial worksheet of Constraint Manager. To access this worksheet, choose Setup Constraints Physical (cmgr_phys command), as described in the Allegro PCB and Package Physical Layout Command Reference. Then, click on any cell in the Vias column to access the Edit Via List dialog box and select the vias you want to assign to the layer. Note: Before you can establish a list of vias, you must dene all necessary padstacks, both through-hole and blind or buried. Choose Tools Padstack Modify Design Padstack (padeditdb command) to complete this task. When multiple vias are available during routing, the router uses the via that spans the fewest layers. Therefore, blind and buried vias are selected before a through-hole via. If multiple blind and buried vias span the correct layers, the one that spans the fewest is chosen. If both through-hole and blind/buried vias are legal for a net, the router prefers a sequence of blind/buried vias. If more than one sequence of blind/buried vias is possible, Allegro PCB Editor selects the sequence with the fewest vias. The router selects a through-hole via only if no sequence of blind/buried vias is possible. If multiple through-hole vias are available, then the rst one on the list is used. Controlling Via Staggering Staggered vias are two pins or vias on the same net with a single connect line connecting themon a particular layer. The stagger distance is the distance fromthe connect point of one pin or via (x,y location) to the connect point of another. Stagger distance Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 90 Product Version 16.0 A minimumstagger distance lets you control how close staggered vias can be to each other. Zero is a legal value for Min BBvia Stagger, which allows a pad to be placed on top of the via to which it is connected, as in the following example: This establishes a direct connection, without a connect line. For details on direct pad-to-pad connections, see Allowing Via Placement on Pads. After you have minimum and maximum stagger distances, a DRC marker is generated if a stagger distance is less than the minimum stagger value or greater than the maximum stagger value. The DRC marker is placed on the common subclass. Dening Minimum and Maximum Stagger Distances There are two methods for dening stagger distances: I Assign these distances to nets using a constraint set. Choose Setup Constraints Physical (cmgr_phys command) to enter values in the Min and Max cells under the BB Via Stagger column in the Physical worksheet of Constraint Manager. You can specify these elds by subclass. I Add these distance constraints to individual nets. Choose Edit Properties (property edit command) to assign these properties, described in the Allegro Platform Properties Reference: MIN_BVIA_STAGGER MAX_BVIA_STAGGER These menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Allowing Via Placement on Pads You can set the placement of vias on pads in the Physical worksheet of Constraint Manager. Choose Setup Constraints Physical (cmgr_phys command) and click in cells under the column Allow - Pad-Pad Connect to select a via placement option from the pull-down list for each layer. To create a pad-to-pad direct connections, follow these rules: Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 91 Product Version 16.0 I Both via and pad must be on the same layer (ETCH subclass). I The origin of one pad must be within the edge of the other pad. I The two pads must be on the same net. There is no limit to the number of vias that can connect to a single pad, as shown below: Connection: Origin of via inside the edge of the surface-mount pad No Connection: Via origin is not inside the edge of the surface-mount pad Surface-mount pads Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 92 Product Version 16.0 Controlling the Distance Between Buried Vias You can control the minimum distance allowed between the centers of two vias that do not share a common layer. The distance is measured fromthe connect point of one pin or via (x,y location) to the connect point of the other. There are two methods for controlling the distance between buried vias: I Assign the distance using a constraint set. Choose Setup Constraints Spacing (cmgr_spac command) to access the Spacing worksheet of Constraint Manager. In the tree view, expand the Spacing Constraint Set folder and then the All Layers icon. Select the Same Net/BB Via Gap icon, then enter a default value in the cell under the column Min BB Via Gap. I Add this distance constraint to individual nets. Choose Edit Properties (property edit command) to assign the MIN_BVIA_GAP property, described in the Allegro Platform Properties Reference. These menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Important If the gap is less than the specied constraint value, a DRC marker appears except if the vias in question share a common layer, in which case no DRC error is generated. Controlling the Number of Vias on a Net There are two methods for controlling the number of vias on a net: I Assign this number using a constraint set. Choose Setup Constraints Electrical (cmgr_elec command) to access the Electrical worksheet of Constraint Manager. In the tree view, expand the Net folder and then the Routing icon. Select the Wiring icon, then enter values in the cells under the Via Count - Max column. I Add this constraint to individual nets. Choose Edit Properties (property edit command) to assign the MAX_VIA_COUNT property, described in the Allegro Platform Properties Reference. These menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 93 Product Version 16.0 Scheduling Nets Interactively After placing design elements on a design, you might need to reschedule the order that the pins are routed on a particular net to satisfy electrical constraints and improve routability. Choose Logic Net Schedule (net schedule command), described in the Allegro PCB and Package Physical Layout Command Reference, to: I Schedule entire nets and parts of nets. I Schedule partially placed nets. I Schedule Tpoints in nets. I Unschedule nets. Constraints That Affect Automatic Routing This section explains key properties that affect automatic routing. To apply properties, Choose Edit Properties (property edit command), described in the Allegro PCB and Package Physical Layout Command Reference. Net Properties The following properties can be added to particular nets. The basics of each property and its values are described in the Allegro Platform Properties Reference. If there is additional information on routing for the property, it appears in this section. I PROPAGATION_DELAY (For routing details, see below.) I DIFFP_COUPLED_MINUS I DIFFP_COUPLED_PLUS I DIFFP_GATHER_CONTROL I DIFFP_MIN_SPACE I DIFFP_NECK_GAP I DIFFP_PHASE_TOL I DIFFP_PRIMARY_GAP I DIFFP_UNCOUPLED_LENGTH Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 94 Product Version 16.0 I ECL I ELECTRICAL_CONSTRAINT_SET I FIXED I IMPEDANCE_RULE (For routing details, see IMPEDANCE_RULE.) I RELATIVE_PROPAGATION_DELAY I LAYERSET_GROUP I MAX_BVIA_STAGGER I MAX_XTALK I MAX_VIA_COUNT I MIN_BVIA_GAP I MIN_BVIA_STAGGER I MIN_LINE_WIDTH I NET_PHYSICAL_TYPE I NET_SPACING_TYPE I NO_PIN_ESCAPE I NO_RAT I NO_RIPUP I NO_ROUTE I RATSNEST_SCHEDULE I ROUTE_PRIORITY I SAME_NET I STUB_LENGTH I TS_ALLOWED I VIA_LIST Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 95 Product Version 16.0 PROPAGATION_DELAY Add this property to nets to control either the delay or the connection length between any two pins or for an entire net. Note: For a complete explanation of how the Allegro PCB Router uses PROPAGATION_DELAY, see the Allegro PCB Router documentation. The Allegro PCB Editor Glossing applications do not recognize the PROPAGATION_DELAY property. Both the Line And Via Cleanup and Line Smoothing applications can make changes in the lengths of nets, so it is best to avoid running either of these two functions on any net with a PROPAGATION_DELAY. Add the NO_GLOSS property to delay nets. The other glossing functions make minor length changes and should not adversely affect nets with the PROPAGATION_DELAY attached. Applying PROPAGATION_DELAY to a Net You can add the PROPAGATION_DELAY property to a net using any of the following methods: I Place it on the schematic with Design Entry HDL, System Connectivity Manager, or Design Entry CIS (if available). I Add it through a netlist. I Choose Edit Properties (property edit command) to assign it interactively. I Choose Setup Constraints Electrical (cmgr_elec command) to specify it in the Propagation Delay column of the Electrical worksheet in Constraint Manager. Because the syntax is complex, adding the property through Constraint Manager or a topology template is the recommended method. Reports for Checking PROPAGATION_DELAY Results Two Allegro PCB Editor reports let you verify etch results with the PROPAGATION_DELAY property: ECL Actual/Schedule Report This report is useful for verifying if the connection length restrictions for a board are reasonable. Note: This report does not support non-ECL nets or extended nets. Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 96 Product Version 16.0 To generate this report, type the following command: report -v ean <design name> <output report name> For every net marked with the ECL property, this report lists the manhattan distance for each pin-to-pin connection within the net. By comparing the required length with the manhattan distance for each connection, you can determine whether or not the lengths are acceptable. If the requested maximum is shorter than the manhattan length or if the maximum is much longer than the manhattan distance, the router might not achieve the required results. If any of these conditions exist, x them by modifying placement before running the router. DRC Report This report lists all violations that exist on the design. To generate this report, type the following command: report -v drc <design name> <output report name> Any connection that is longer than a given maximum length, or shorter than a specied minimum length, is listed in this report. This report also lists errors created when using interactive editing commands that do not adhere to the PROPAGATION_DELAY property. IMPEDANCE_RULE This property species an impedance restriction between any two pins on a net or between any pin and Tpoint connection on a net. When this property is assigned to a net its impedance value overrides any impedance value constraint dened in the nets Electrical Constraint Set. IMPEDANCE_RULE is used to establish line widths used by Allegro PCB Router. The router passes a width rule that satises impedance unless the width is smaller than the minimum line width rule. Applying IMPEDANCE_RULE to a Net You can add the IMPEDANCE_RULE property to a net using any of the following methods: I Add it through a netlist. I Choose Edit Properties (property edit command) to assign it interactively. The netlist is the recommended method. Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 97 Product Version 16.0 Component Properties The following properties can be added to components: I NO_PIN_ESCAPE I PIN_ESCAPE Optimizing Tpoint Location After fanout is complete and before any critical routing is performed, you can use the optimize_ts command to help optimize the location of Tpoints in designs containing complex topologies such as dense H-tree and Tpointed differential pair. This command uses the rst of two separate modules that Allegro PCB Router employs to optimize Tpoints for routing. The rst module is a course optimizer that works during the opening of a .dsn or .do le. The second module runs during the rst two route passes and optimizes locations according to routing when the dynamic virtual pin setting is on (default). Graphic feedback from this command enables you to visually inspect the optimized Tpoint locations to ensure that they are reasonable. If so, you can begin routing. However, if one or more Tpoint locations are unsatisfactory, you can make further adjustments interactively by using the following procedure. To interactively adjust and rene the location of Tpoints 1. Move one or more Tpoints to more satisfactory locations in the design taking routing rules into consideration. Note: Be sure to check (select) Rat Ts in the Find Filter. 2. Apply a FIXED_T_TOLERANCE property to each Tpoint that you move to preserve its new location. Note: The value of this property is a radius (0 (xed) to 500 (default) mils) from the supplied location that denes how much the router is allowed to move the Tpoint once routing commences. For details on how to apply a property to a design element, see the procedures for the property_edit command. 3. Check your design carefully to ensure that vias at these new Tpoint locations do not create conicts. 4. Using the Route Editor, type the following commands in the Command line. Allegro PCB Editor User Guide: Routing the Design Prerequisites for Allegro PCB Router Automatic Routing June 2007 98 Product Version 16.0 protect all wires route 2 delete all wires quit (and save) Note: This is a more involved process of Tpoint location renement and takes longer to optimize. This result is the Allegro PCB Routers best effort to optimize Tpoint locations. 5. Repeat steps 1 through 3. 6. Repeat step 4 using a ve pass routing strategy (route 5). 7. Make any nal adjustments by repeating steps 1 through 3 again. Allegro PCB Editor User Guide: Routing the Design June 2007 99 Product Version 16.0 5 Cleaning Up a Design When you have completely routed a design, you can use the Allegro PCB Editor glossing process to eliminate vias and straighten lines. This improves the appearance and manufacturability of the design. It also lowers fabrication costs and enhances routability and reliability. With the Allegro PCB Editor glossing features, you can: I Clean up lines and vias I Eliminate vias I Smooth lines I Center lines between pads I Improve line entry into pads I Widen connect lines I Convert corners to arcs I Generate dielectric patches I Fillet pad and T connection Glossing does the following: I Adheres to design rules I Can run multiple times I Can be run by area I Allows you to specify up to 16 windows and 16 rooms I Performs operations on a pad and related connect lines where the center of the pad is within the glossing area Note: An ECO can be difcult to implement after glossing has centered lines and improved line entry into pads because many routing channels are blocked. Cadence recommends that Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 100 Product Version 16.0 you keep a copy of the routed design prior to glossing. If your company standards prohibit the use of two versions, run gloss without these options. Figure 5-1 shows the glossing process. Figure 5-1 Glossing Cycle Setting Properties to Prevent Net Changes During Glossing To designate nets that require special treatment, assign the following properties by choosing Edit Properties (property edit command) , described in the Allegro PCB and Package Physical Layout Command Reference: NO_GLOSS Prevents a net from being changed by the automatic glossing applications. FIXED Prevents a net or group from being changed by any automatic routine. Set properties on nets Add no-gloss polygons Define areas to be glossed Set glossing parameters Run glossing program Glossing program generates gloss.log files Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 101 Product Version 16.0 Adding No-Gloss Polygons By enclosing an area of the design with a no-gloss polygon, you can exclude that area from being changed by glossing. A no-gloss polygon is a shape on class MANUFACTURING. It can be placed in any of the following subclasses: I NO_GLOSS_TOP I NO_GLOSS_BOTTOM I NO_GLOSS _ALL I NO_GLOSS_INTERNAL To add a no-gloss rectangular shape, choose Setup Areas Gloss Keepout (keepout gloss command) with the Active Class and Subclass in the Options tab set to Manufacturing and No_gloss_all. The menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Note: To add a polygon or circular shape, choose Shape Polygon (shape add command) or Shape Circular (shape add circle command) with the Active Class and Subclass in the Options tab set to Manufacturing and No_gloss_all. Dening the Area to be Glossed You can specify any of the following areas for glossing with the appropriate menu path or command. The menu items and commands are described in the Allegro PCB and Package Physical Layout Command Reference. Area Menu Path/Command Notes Design Route Gloss Design gloss area design Allegro PCB Editor automatically selects the area dened by the route keepin for glossing. Individual nets or components Route Gloss Highlight gloss area highlight You select the nets or components for glossing before you select this option. Room(s) Route Gloss Room gloss area room You specify one or more rooms as glossing areas. Window Route Gloss Window gloss area window You specify a rectangular window area for glossing. Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 102 Product Version 16.0 To view the current, active area of the design for glossing, choose Route Gloss List (gloss area list command). Setting Glossing Parameters Choose Route Gloss Execute (gloss param command), described in the Allegro PCB and Package Physical Layout Command Reference, to select glossing applications, set glossing parameters, and control the functions. Each glossing application is described in Glossing Applications. Glossing Designs Interactively or in Batch Mode After dening the area to be glossed and setting the parameters, you can gloss a design interactively by choosing Route Gloss Execute (gloss param command) or in batch mode with the gloss command, both described in the Allegro PCB and Package Physical Layout Command Reference. If you are glossing a small area of the design or running one of the faster types of gloss, interactive glossing is the fastest method. If you are running a complete execution of line and via cleanup, batch mode is most efcient. When you run glossing, Allegro PCB Editor writes statistics into a log le, gloss.log. Check this le for warnings and errors encountered during the glossing process. After glossing is complete, examine the glossed design and the gloss.log le to evaluate the results. Glossing Applications For instructions on displaying the Glossing Controller dialog box, selecting applications to run, displaying application parameter dialog boxes, and descriptions of available parameter elds, see Route Gloss Execute (gloss param command) in the Allegro PCB and Package Physical Layout Command Reference. Pad and T Connection Fillet Glossing One of the glossing applications you can set up using the gloss execute command is Pad and T Connection Fillet glossing. Filleting should be the nal operation performed prior to postprocessing. When you have a design routed to 100%, invoke the llet options. Cadence recommends that you run any other glossing options rst. Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 103 Product Version 16.0 Details of the parameters for this glossing application appear in the Route Gloss Execute (gloss param command) in the Allegro PCB and Package Physical Layout Command Reference. This section describes how to prepare a design for this nal glossing step and how to change a lleted design. Preparing the Design for Filleting Prepare the designs for llets by running the Improve Line Entry into pads glossing application, which you set up by choosing Route Gloss Execute (gloss param command). Since the lleting application does not place a llet past the rst bend in the etch, running this option rst assures that the rst bend in a connect line occurs outside a pad. Executing the Fillet Operation When Pad and T Connection lleting is executed, each pin, via, and T is compared with the parameter denitions to determine whether it is a candidate for glossing. When the program nds a pad or T to be glossed, a marker is inserted into the line entering the pad or T at the point of the V-shaped pattern being created. The V-shaped pattern is formed by adding two connect lines, each of which connects to the marker on one end, and then extends to the pad or T connection on the other end. Connect lines are added as the same width and on the same ETCH layer as the original connect line. They are added to the same net as the original connect line. If the preferred location of the marker is beyond the rst bend of the line segment, then it is moved to the end of the segment, as shown below. Fillet is pushed back to fall inside the rst bend. Fillet is placed as dened. Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 104 Product Version 16.0 If the area inside the llet is not completely lled because of the line width and angle of the llet, a second V-shaped set of connect lines is added inside the rst set. These lines overlap the previous lines. This process is repeated until the area is lled solid. Changing a Filleted Design You should consider the following information when editing a lleted design. If the editing job is small, you can manually move llets. If editing is more substantial, remove the llets and replace them. Two things that make editing llets difcult are: they are very close to pads and connections, and they are dangling lines. Fillets can be edited using the interactive commands. The difculty lies in the fact that they are a series of lines that can be tedious to select. The following shows what happens when you move the symbol attached to a llet: I This is component D26 as it appears after completing the lleting operation. I After the symbol is moved horizontally, notice that the connect line etch stretches, but the llet remains attached to the same point on the etch. This can be remedied two ways. First, you can choose Edit Move, click the right mouse button, and choose Temp Group fromthe pop-up menu; then move the llet with the symbol. Then, you can zoom in and manually move each llet line. Another option is to delete all llets in the area you are editing and replace themby rerunning the Pads and T connection fillet glossing on that area. Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 105 Product Version 16.0 Error Reporting When the glossing program completes, check the gloss.log le for a description of the items modied during processing. The following sample gloss.log le shows results of the Convert corner to arc glossing application. Sample gloss.log File Glossing on drawing /home/chuck/routed.brd - Allegro PCB Editor glossing version Glossing started on Tue Jan 15 00:45:19 1995 Started on Tue Jan 15 00:45:19 1995 Maximum Radius 13. Minimum Radius 2. Number of Executions = 1 Elapsed time: 0 hr 0 min 59 sec (0.01 hr) Actual time of completion: Tue Jan 15 00:46:13 1995 Glossing complete. Error Reporting for Pad and T Connection Filleting If a llet pattern creates a DRC error, the llet is not added and a warning message is written to the gloss.log log le. If part of a llet cannot be created due to a DRC error, the problemis reported in the gloss.log le with the following message: WARNING:Fillet segment from (3450,6168) to (3431,5952) on subclass BOTTOM removed due to DRC error. In addition, the number of llets that only partially fail due to a DRC error are tallied and reported at the end of the log le with the following message: Number of fillets rejected due to DRC errors : 1 This message indicates that one partial llet was created. If an entire llet cannot be added due to DRC errors or for any other reason, then the following message appears in the log le: WARNING:Unable to complete fillet on pad at (4580,7450) If the llet fails completely due to DRCerrors (no partial llet is created), then it is not included in the Number of llets rejected due to DRC errors total. Allegro PCB Editor User Guide: Routing the Design Cleaning Up a Design June 2007 106 Product Version 16.0 Error Reporting for Dielectric Generation The log le reects the parameter sets dened for the execution and the glossing activity that occurred, as shown in the following example. ***Parameters for trace layer: TOP Crossover Layer: INTERNAL-SIGNAL4 1st Dielectric Layer: INTERNAL-SIGNAL9 X Size: 15 Y Size: 30 Incremental: Yes Dielectric created at location 475 1500 of size 33 wide by 48 high for nets: GND TN-31 Can't correct drc - both nets not movable: TN-31 VCC Drc at location 600 1500 TN-31 not movable due to etch already moved to crossover layer. VCC not movable due to an attached pad not going through to crossover layer. Dielectric created at location 1200 1438 of size 66 wide by 18 high for nets TN-3 TN-31 Allegro PCB Editor User Guide: Routing the Design June 2007 107 Product Version 16.0 6 Using the Allegro PCB Router Translator The Allegro PCB Router translator in Allegro PCB Editor lets you: I Translate and export data froman Allegro PCB Editor .brd le or .mcm le to an Allegro PCB Router .dsn le. The design le is created from a .brd le and acts as a placeholder containing information needed by Allegro PCB Router to place and route the design. I Translate and import data from an Allegro PCB Router session (.ses) le to a board (.brd) le in Allegro PCB Editor. The session le contains information regarding any placement or routing changes/ additions to the design le. The session le is all that is necessary to read back into Allegro PCB Editor. You can run the translator interactively from Allegro PCB Editor or from an operating system prompt. Both methods produce a dialog box into which you enter the appropriate information and run the program. You can also run the translator from a system prompt as a batch command. Figure Figure 6-1 on page 108 shows the translation ow in both directions. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 108 Product Version 16.0 Figure 6-1 Translation Flows Translator Flows Run the translator program in the manner described in these ows. Designs of these ows appear in the rest of the chapter. Allegro PCB Editor to Allegro PCB Router 1. Set up the Allegro PCB Editor .brd/.mcm le (see Prerequisites to Running the Translator). 2. Choose File Export Router (specctra_out command) from Allegro PCB Editor or run spif from an operating system prompt. 3. Run the program from the displayed dialog box. 4. Call up the design (.dsn) le with Allegro PCB Router and place/route the design using Allegro PCB Router. You may want to set up routing controls within Allegro PCB Router using do les. (Refer to the online Help in Allegro PCB Router for details.) Allegro PCB Editor Design file written* * Design and session les are similar, but design (.dsn) les contain detailed pre-route information for the purpose of identifying new place-and-route (and gate/pin swap) data. Session les contain information related to changes in placement/routing. PCB Router Allegro PCB Editor PCB Router Session file written* PCB Router-to-Allegro PCB Editor translation Allegro PCB Editor to-PCB Router translation Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 109 Product Version 16.0 Allegro PCB Router to Allegro PCB Editor 1. Write a session (.ses) le in Allegro PCB Router. 2. Choose File Import Router (specctra_in command) from Allegro PCB Editor or run spif from an operating system prompt. 3. Run the program from the displayed dialog box. 4. Choose Tools Update DRC (drc update command) in Allegro PCB Editor. Prerequisites to Running the Translator To minimize the potential for violations and mapping errors, prepare the Allegro PCB Editor layout les before running the translator. You can perform these preparations in any order: I Set up constraints and properties in Allegro PCB Editor. Note: Special constraints that are dened in Allegro PCB Router do not get passed back to Allegro PCB Editor when you import the .ses le back to Allegro PCB Editor. I Set plane layers to Plane (other layers are translated as Signal by the translator). I Edit null padstacks in Allegro PCB Editor to avoid generating errors or warnings when starting Allegro PCB Router. I Run the pre-route checker. Restrictions and Considerations In addition to the preparations listed above, be aware of the following when you run the translator: I The FIXEDproperty in Allegro PCB Editor translates to a net of TYPE FIX in Allegro PCB Router. It cannot be changed in Allegro PCB Router. I The translator protects pre-existing etch in Allegro PCB Editor. Etch that is carried over to Allegro PCB Router can be unprotected, then removed/modied there. I The translated board le should not be changed between the time the Allegro PCB Router design le is written and the session le is read back into Allegro PCB Editor. I A session le must be written before exiting Allegro PCB Router to update the Allegro PCB Editor .brd/.mcm le. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 110 Product Version 16.0 I Only place and route results (not rules) created in Allegro PCB Router translate to Allegro PCB Editor. I Electrical constraints are not passed from Allegro PCB Editor to Allegro PCB Router if you set DRC mode to Off in the Electrical Modes tab of the Constraints Modes and Options dialog box, accessed when you choose Setup Constraints Modes (cns modes command). You must have all DRC modes set to On or Batch to pass electrical constraints. I Dynamic shapes passed from Allegro PCB Editor to Allegro PCB Router without the FIXED property enable Allegro PCB Router to allow wires and vias inside their area lls. I All shapes with voids passed from Allegro PCB Router back to Allegro PCB Editor behave in the following ways: For shapes with the Dynamic Copper FIll parameter set to Disabled; voiding does not take place. For shapes with the Dynamic Copper FIll parameter set to either Rough or WYSIWYG; voiding automatically takes place. Running the Pre-Route Checker Before routing an Allegro PCB Editor design in Allegro PCB Router, you should performa pre- route check to help ensure that the design does not contain non-conforming conditions that may cause Allegro PCB Router to fail or route poorly. The check identies deciencies in a design that could cause the router to fail and nds Allegro PCB Editor constraints that do not correspond with constraints in Allegro PCB Router. You can use one of these menu items or commands to run routing and alignment checks, both of which are described in the Allegro PCB and Package Physical Layout Command Reference: I Route Router Checks (specctra checks command) runs the checker fromAllegro PCB Editor on the current design. I spif is a batch command that runs the checker against the specied design. You can also run the Allegro PCB Router with this command. I spif_batch is a batch command that runs the checker against the specied design. With Route Router Checks (specctra checks command) and the spif command, the pre-route check displays a list of warnings and errors that provides you with the opportunity to remove or otherwise work around non-conforming constraints. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 111 Product Version 16.0 Listing of Pre-Route Design Checks The following design checks are performed for Allegro PCB Router when you run the pre- route program. Additional checks may be added in subsequent versions to identify non- conforming conditions in the two systems. I checkKeepin route_keepin is not dened. I checkFiguresOnEtch There are gures on ETCH subclass. I checkVias There are no vias available for routing. Checks for default vias only. I check0LineWidth One or more nets have a default line of zero units. I checkConsOutsideKeepin One or more connection points of a route is outside the route_keepin area. Connections are checked for placed components only. I checkPositiveShapes One or more routing layers have more than 50% of their areas covered with positive shapes. I checkPinsUnderKeepout A through pin is blocked by ROUTE_KEEPOUT ALL, or a surface-mount pin is blocked by KEEPOUT on its layer. I checkDanglingConnections Unconnected clines/vias that would translate to Allegro PCB Router as traces/vias on an orphan net. This can cause unwanted blockages when routing. I checkXtalkTable DRC is turned on, but no crosstalk table (design_name.xtb) le can be found. I checkRatTs One or more Rat Ts are found without a FIXED_T_TOLERANCE property set. I checkPadstackShape Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 112 Product Version 16.0 A high number of custom shapes are found in one or more padstacks. This can cause possible degradation in autorouter performance. I checkHighNumberDRC A high number of pre-existing DRC errors are found. This can cause possible degradation in autorouter performance. I checkShapeVertices A high number of vertices are found on one or more shapes on a signal layer. This can cause possible degradation in autorouter performance. I checkDiffPairConstraintArea One or more constraint areas are found. Differential pair rules in constraint areas are not followed by the Allegro PCB Router. Running the Translator Based on how you run the Allegro PCB Router translator, you can enter parameters (le names) from the user interfaces or from an operating system prompt: I Choose File Import Router (specctra_in command) or File Export Router (specctra_out command) fromAllegro PCB Editor when you want to import to or export from the active database. I To transfer design data between Allegro PCB Editor and Allegro PCB Router, use the spif command with the -io argument at the operating system prompt. All these commands are described in the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 113 Product Version 16.0 Mapping Allegro PCB Editor Properties, Assignment Tables, Rule Sets, and Constraints This section describes how Allegro PCB Editor properties, assignment tables, and rule sets are mapped to corresponding elements in the Allegro PCB Router design le. Allegro PCB Editor Properties to Allegro PCB Router The SPIF translator extracts the following Allegro PCB Editor properties: ALT_SYMBOLS BUS_NAME NO_SWAP_GATE ROOM ECL ELECTRICAL_CONSTRAINT_SET FIXED FIXED_T_TOLERANCE LAYER_SET_GROUP MAX_VIA_COUNT MIN_LINE_WIDTH NET_PHYSICAL_TYPE NET_SPACING_TYPE NO_RIPUP NO_ROUTE PINUSE PROPAGATION_DELAY RELATIVE_PROPAGATION_DELAY ROUTE_PRIORITY SHIELD_NET (user dened) Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 114 Product Version 16.0 STUB_LENGTH TS_ALLOWED VIA_LIST NO_PIN_ESCAPE NO_TEST SHIELD_NET SHIELD_TYPE PIN_DELAY The mapping of these properties to a Allegro PCB Router design le are detailed below. ALT_SYMBOLS This property translates to a pair of image descriptors in Allegro PCB Router that specify symbol images for top side and back side component placement. Allegro PCB Editor: CLASS DISCRETE PACKAGE RES400 PACKAGEPROP ALT_SYMBOLS (RES500;B:RES400B) Allegro PCB Router: (image RES400_-_RES400B (side front) ... ) (image RES400_-_RES400B (side back) ... ) In this example, the translator denes front and back side images for Allegro PCB Router, but uses the same name for both, with a side descriptor to specify image usage for either front or back placement. The translator combines the Allegro PCB Editor package symbol name (RES400) and the rst Allegro PCB Editor symbol name following the B in the ALT_SYMBOLS property value (RES400B) to form the Allegro PCB Router image name (RES400_-_RES400B). BUS_NAME This property translates to a Allegro PCB Router class that contains all nets that have an identical BUS_NAME value. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 115 Product Version 16.0 Allegro PCB Editor: Net Sig1: BUS_NAME = DATA Net Sig2 BUS_NAME = DATA Net Sig3 BUS_NAME = DATA Allegro PCB Router: (class DATA Sig1 Sig2 Sig3) NO_SWAP_GATE Components with this property do not have any of their gates swapped, either within the component or with gates in other components. Allegro PCB Editor: component U1: NO_SWAP_GATE = YES Allegro PCB Router: (component DIP14 (place U1 ... (property (lock_type gate))) NO_SWAP_PIN Components with this property do not have any of their pins swapped with other pins in the component. Allegro PCB Editor: component U1: NO_SWAP_PIN = YES Allegro PCB Router: (component DIP14 (place U1 ... (property (lock_type pin))) ROOM Components with this property are included in a Allegro PCB Router oor planning room. Allegro PCB Editor: component U1: room = left_side Allegro PCB Router: (floor_plan (room left_side Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 116 Product Version 16.0 (polygon ...) (include U1 ... (property (type hard)) (exclude remain))) PROPAGATION_DELAY Nets with this property have a length rule in the Allegro PCB Router design le. Pin pairs included in the Allegro PCB Editor PROPAGATION_DELAY translate as fromto descriptors in the Allegro PCB Router design le. Within the same net, pin pairs are (type soft); in extended nets (XNets), a group is created. Allegro PCB Editor: C18.1:U6.4:800:1000:U16.2:U4.3:900:1100: Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (fromto C18-1 U6-4 (circuit (length 1000 800)) (fromto U16-2 U4-3 (circuit (length 1100 900))) ) If pin pairs are not included in the PROPAGATION_DELAY, fromto descriptors are created for AD:AR or D:R formats. Allegro PCB Editor: ::1500:2000 Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (circuit (length 2000 1500) ) If the delay value is specied in time instead of length (for example, ns), then the translator calculates and assigns a Time/Length Factor to the design le so that Allegro PCB Router can translate the time to an appropriate length. Allegro PCB Editor: ECset ESET1: Primary Gap = 8 mil Line Width = 5 mil Neck Gap = 6 mil Neck Width = 4 mil Coupled Tolerance (+) = 3 mil Coupled Tolerance (-) = 2 mil Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 117 Product Version 16.0 Min Line Spacing = 1 mil Gather Control = Ignore Max Uncoupled Length = 25 mil Phase Control = Dynamic Phase Tolerance = 15 mil Net Sig1: DIFF_PAIR_NAME = MyPair ELECTRICAL_CONSTRAINT_SET = ESET1 PRIMARY_GAP = 9 mil Net Sig2 DIFF_PAIR_NAME = MyPair ELECTRICAL_CONSTRAINT_SET = ESET1 Allegro PCB Router: define (pair (nets Sig1 Sig2)) define (class ESET1 Sig1 Sig2) rule class ESET1 (edge_primary_gap 8) rule class ESET1 (diffpair_line_width 5) rule class ESET1 (neck_down_gap 6) rule class ESET1 (neck_down_width 4) rule class ESET1 (edge_coupling_tolerance_plus 3) rule class ESET1 (edge_coupling_tolerance_minus -2) rule class ESET1 (clearance 1 (wire_wire)) rule class ESET1 (ignore_gather_length on) rule class ESET1 (max_uncoupled_length 25) rule class ESET1 (phase_control on) rule class ESET1 (phase_tolerance 15) rule net Sig1 (edge_primary_gap 9) ECL Nets with the ECL property translate to a series of fromto descriptors and a reorder daisy net rule in Allegro PCB Router. Allegro PCB Router: (net SIG-1 (pins C18-1 U16-2 U4-3 U6-4) (fromto C18-1 U4-3) (fromto U4-3 U6-4) Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 118 Product Version 16.0 (fromto U6-4 U16-2) (rule (reorder daisy)) ) ELECTRICAL_CONSTRAINT_SET This property determines the electrical rule set for this net. If this property is not dened, the default electrical rule set is used. FIXED Nets with this property are type x in Allegro PCBRouter. Allegro PCB Router cannot move, alter, or route to any point on these nets. Nets with this Allegro PCB Editor property cannot be deleted or replaced by the cct2cadence program. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (type fix) ) If nets are type x and not routed, Allegro PCB Router does not recognize them as unconnects, although Allegro PCB Editor does. Therefore, you can have a report of 100% completion in Allegro PCB Router, but when routing is merged with the Allegro PCB Editor le, the completion rate is less than 100%. FIXED_T_TOLERANCE Nets with this property have a RADIUS rule in Allegro PCB Router. Allegro PCB Router cannot move the location of any Rat-Ts outside the specied tolerance radius. Allegro PCB Editor: FIXED_T_TOLERANCE = 50 mil Allegro PCB Router: (virtual_pin TR14.2_Sig1 (position 1500 2500 (radius 50)) ) LAYERSET_GROUP Nets with this property have a USE_LAYER rule in Allegro PCB Router. Allegro PCB Editor: Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 119 Product Version 16.0 LAYERSET_GROUP = LS1:LS2 Allegro PCB Router: (circuit net SIG_1 (use_layer LS1 LS2) ) MAX_VIA_COUNT Nets with this property have a MAX_VIA_COUNT net rule in Allegro PCB Router. Allegro PCB Editor: MAX_VIA_COUNT = 5 Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (max_via_count 5)) ) MIN_LINE_WIDTH Nets with this property have a width net rule in Allegro PCB Router. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (width 10)) ) NET_PHYSICAL_TYPE This property determines the physical rules for a net according to the Allegro PCB Editor assignment table for spacing rule sets (see Allegro PCB Editor Assignment Tables to Allegro PCB Router). NET_SPACING_TYPE Nets with this property are included in a Allegro PCB Router class that has the same name as this property's value. The property also determines the spacing rules for this class according to the Allegro PCB Editor assignment table for spacing rule sets (see Allegro PCB Editor Assignment Tables to Allegro PCB Router). Allegro PCB Router: (class clocks SIG_1 SIG_2 SIG_3 SIG_4 SIG_5) no_move Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 120 Product Version 16.0 Symbols with this property have a lock_type position rule and cannot be moved or placed by Allegro PCB Router. Allegro PCB Editor: U1: NO_MOVE = TRUE U2: NO_MOVE = TRUE Allegro PCB Router: (place U1 9180 8080 top 0 (lock_type position)) (place U2 3700 7160 top 90 (lock_type position)) NO_RIPUP All wires and vias that have this property are type protect in Allegro PCB Router. Wires and vias assigned this property cannot be altered by Allegro PCB Router. The autorouter can route to a terminal of a protected wire, or if tjunctions are allowed, tee off a protected segment. Allegro PCB Router: (wire (path TOP 10 8043 9090 8103 9090 8103 9179) (net SIG_1)(type protect) ) NO_ROUTE Nets with this property are of type x in Allegro PCB Router. Allegro PCBRouter cannot route nets that have this property and cannot move or alter routes that have this property. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (type fix) ) When you assign a NO_ROUTE property to a net in Allegro PCB Editor, the property translates to a type x in Allegro PCB Router. Allegro PCB Router does not alter nets that have the x property. If a net with the x property is not prerouted, it remains unrouted. Nets with the FIXED property cannot be completed by Allegro PCB Router unless you apply the unx command. PINUSE This pin property translates to source and load keywords in a Allegro PCB Router net descriptor statement. Values of OUT, OCA, OCL, and TRI translate to Allegro PCB Router source keywords. Values of NC, IN, UNSPEC, and BI translate to Allegro PCB Router load keywords. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 121 Product Version 16.0 Allegro PCB Editor: NET: SIG1 PINS: U1-1 U2-2 U3-1 U4-1 PIN: U3-1; PROPERTY: PINUSE VALUE: OUT Allegro PCB Router: (net SIG (pins U1-1 U2-1 U3-1 U4-1) (source U3-1) ... ) In this example, Allegro PCB Editor assigns the PINUSE property with a value of OUT to pin U3-1. The translator denes U3-1 as a source pin in the Allegro PCB Router net descriptor. The translator ignores the PINUSE property if its associated pins are in a net that has an Allegro PCB Editor ECL property. ROUTE_PRIORITY Nets with this property have a priority net rule in Allegro PCB Router. In Allegro PCB Editor, the lower the value the higher the route priority. A value of 1 is the highest Allegro PCB Editor route priority. In Allegro PCB Router, the higher the value the higher the route priority. A value of 255 is the highest Allegro PCB Router route priority. If the Allegro PCB Editor route priority has a value of 255 or greater, the route priority maps to Allegro PCB Router as 1 (a lowAllegro PCB Router route priority). Otherwise, route priority is calculated as follows: Allegro PCB Router route priority = (256 - Allegro PCB Editor route priority) For example, if the Allegro PCB Editor route priority is 5, the Allegro PCB Router route priority is represented as (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (circuit (priority 251)) ) STUB_LENGTH Nets that have a STUB_LENGTH property with a value greater than 0 have a max_stub net rule in Allegro PCB Router. Allegro PCB Router: Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 122 Product Version 16.0 (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (max_stub 50)) ) TS_ALLOWED Nets with this property have a tjunction net rule in Allegro PCB Router. There are four different settings for tjunctions in Allegro PCB Editor. not_allowed No tjunctions are allowed on these nets. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (tjunction off)) ) anywhere Tjunctions are allowed anywhere on these nets. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (tjunction on) (junction_type all)) ) pins_only and pins_and_vias_onlyBoth pins_and_vias_only and pins_only allow tjunctions at terminals only (pins and vias). Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (tjunction on) (junction_type term_only)) ) VIA_LIST Nets with this property have a use_via net rule in Allegro PCB Router. Only vias in the via_list are used by Allegro PCB Router to route a net with this property. Wildcards are not allowed when you use this property. Allegro PCB Editor: via_list - via1, testvia Allegro PCB Router: (net SIG_1 Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 123 Product Version 16.0 (pins C18-1 U16-2 U4-3 U6-4) (circuit (use_via via1 testvia)) NO_PIN_ESCAPE Nets with this property have a 'noexpose' rule in the Allegro PCB Router design le. All pins in the net are included in the 'noexpose' rule and will not be fanned out. Allegro PCB Router: (net SIG1 (pins U1-3 R3-1 U1-4) (noexpose U1-3 R3-1 U1-4) ) NO_TEST Nets with this property have the testpoint rule 'insert off' in the Allegro PCB Router design le. The Allegro PCB Router does not insert testpoints on nets that have this property. Allegro PCB Router: (net SIG1 (pins U1-3 R3-1 U1-4) (rule (testpoint (insert off))) ) SHIELD_NET Nets with this property have the circuit rule'shield' in the Allegro PCB Router design le. The value of this property is the name of the net to use for shielding the net that the property is attached to. Allegro PCB Editor: SHIELD_NET = GND Allegro PCB Router: (net SIG1 (circuit (shield on (use_net GND))) ) SHIELD_TYPE Nets with this property include a type for the circuit rule 'shield' in the Allegro PCB Router design le. The value should be one of the Allegro PCB Router keywords "parallel", "tandem", or "coax". Allegro PCB Editor: SHIELD_NET = GND SHIELD_TYPE = PARALLEL Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 124 Product Version 16.0 Allegro PCB Router: (net SIG1 (circuit (shield on (use_net GND) (type parallel))) ) PIN_DELAY Pins with this property include a 'pin_length' rule in the Allegro PCB Router design le. The value should representthe internal length from the package to the pin. This length will be considered when calculating length rules in the Allegro PCB Router. Allegro PCB Editor: PIN_DELAY on U1-3 = 2 mill Allegro PCB Router: (net SIG1 (pins U1-3 R3-1 U1-4) (pin_length 2 u1-3) ) Allegro PCB Editor Assignment Tables to Allegro PCB Router Allegro PCB Editor assignment tables support area properties. How these area properties translate to Allegro PCB Router depends on whether they are combined with other Allegro PCB Editor properties. Spacing Assignment Tables uses the spacing assignment table to assign spacing rule sets to nets that use the NET_SPACING_TYPE property. I NO_TYPE to NO_TYPE to NO_TYPE entries map to Allegro PCB Router as PCB clearance rules I NET_SPACING_TYPE to NO_TYPE to NO_TYPE entries map to a Allegro PCB Router class of nets with the same name as net_spacing_type I NET_SPACING_TYPE to NET_SPACING_TYPE to NO_TYPE entries map to class_class rules in Allegro PCB Router I Area spacing type entries map to Allegro PCB Router as region rules, if net spacing type entries in the assignment table are NO_TYPE. Otherwise, the area spacing type is ignored Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 125 Product Version 16.0 The following table shows possible assignment table entries: In this example, the Allegro PCB Editor DEFAULT constraint set maps to Allegro PCB Router PCB clearance rules. The 6_MIL_SPACINGconstraint set maps as a region rule for one entry and as a class clearance rule for another entry (CLOCKS1 class). The 7_MIL_SPACING constraint set maps as a Allegro PCB Router class_class clearance rule between wires of the CLOCKS1 class. The entry that denes an 8_MIL_SPACINGconstraint set for the CLOCKS1 net spacing type with a REGION1 area spacing type is ignored and not translated. Physical Allegro PCB Editor uses the physical assignment table to assign physical rule sets to nets that use the NET_PHYSICAL_TYPE property. A NO_TYPE entry maps to Allegro PCB Router as a PCB rule. Nets assigned the NET_PHYSICAL_TYPE properties other than NO_TYPE map to Allegro PCB Router as net rules. In the example above, the DEFAULT physical rules are used for Allegro PCB Router PCB rules. In Allegro PCB Router, the WIDE physical rule set is assigned to nets that have the Allegro PCB Editor NET_PHYSICAL_TYPE property value of CLOCKS1. The class CLOCKS1 has the rules and nets assigned to that class. Allegro PCB Editor Rule Sets to Allegro PCB Router Allegro PCB Editor spacing rules map to Allegro PCB Router as pcb rules, class rules, or class_class rules. Allegro PCB Editor physical rules map to Allegro PCB Router as PCB rules or class rules (see Allegro PCB Editor Properties to Allegro PCB Router). Spacing If a spacing rule set is the default set (that is, no_type, notype, no_type entry), this maps to Allegro PCB Router pcb rules. Ne t 1 Sp a c ing Typ e Ne t 2 Sp a c ing Typ e Are a Sp a c ing Typ e C onstra int Se t NO_TYPE NO_TYPE NO_TYPE DEFAULT NO_TYPE NO_TYPE REGION1 6_MIL_SPACING CLOCKS1 NO_TYPE REGION1 8_MIL_SPACING CLOCKS1 NO_TYPE NO_TYPE 6_MIL_SPACING CLOCKS1 CLOCKS1 NO_TYPE 7_MIL_SPACING Ne t Physic a l Prop e rty Are a Prop e rty Physic a l C onstra int Se t NO_TYPE NO_TYPE DEFAULT CLOCKS1 NO_TYPE WIDE Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 126 Product Version 16.0 Types of clearance rules that translate to Allegro PCB Router include: wire_wire wire_smd wire_area wire_pin wire_via area_smd area_area area_pin area_via smd_smd smd_pin smd_via pin_pin pin_via via_via Spacing rule set examples (in Allegro PCB Router): (rule (clearance 6 (type wire_wire))) (rule (clearance 6 (type wire_smd))) (rule (clearance 6 (type wire_area))) (rule (clearance 6 (type wire_pin))) (rule (clearance 7 (type wire_via))) (rule (clearance 6 (type area_smd))) (rule (clearance 6 (type area_area))) (rule (clearance 6 (type area_pin))) (rule (clearance 7 (type area_via))) (rule (clearance 6 (type smd_smd))) (rule (clearance 6 (type smd_pin))) (rule (clearance 7 (type smd_via))) Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 127 Product Version 16.0 (rule (clearance 6 (type pin_pin))) (rule (clearance 7 (type pin_via))) (rule (clearance 7 (type via_via))) Physical The Allegro PCB Editor physical rules that translate include: I Minimum line width maps to Allegro PCB Router as a width rule. Allegro PCB Router: (rule (width 10)) I Allow etch on subclass If one or more signal layers have this rule turned off (no routing on those layers), this rule maps to Allegro PCB Router as a circuit net rule. All signal layers that have this rule turned on are included in a Allegro PCB Router use_layer rule. Allegro PCB Router: (class SIG_1 (pins C18-1 U16-1 U4-3 U6-4) (circuit (use_layer TOP SIG_3 BOTTOM)) ) I Tjunctions map to Allegro PCB Router as a tjunction rule. Allegro PCB Editor has four different settings for tjunctions: Not_Allowed No tjunctions are allowed. Allegro PCB Router: (rule (tjunction off)) Anywhere Tjunctions are allowed anywhere on a wire segment. Allegro PCB Router: (rule (tjunction on) (junction_type all)) Pins_Only Pins_and_Vias_Only Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 128 Product Version 16.0 Both of these settings allow tjunctions at terminals only (pins and vias) Allegro PCB Router: (rule (tjunction on) (junction_type term_only)) Via_List The default physical rule set maps to Allegro PCB Router as a via list. Allegro PCB Router can use any via in the list for autorouting. If a physical rule set is not the default set, vias in the list are represented in the Allegro PCB Router design le as spares. Allegro PCB Router: (via VIA (spare VIA1 VIA_TEST)) Spare vias can be assigned to a net in Allegro PCB Router by using a circuit command. If a net uses a physical rule set that is not the default, the Allegro PCB Editor VIA_LIST maps to Allegro PCB Router as a circuit net rule, and all vias in the list are included. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (circuit (use_via VIA_TEST VIA1)) Electrical The electrical rule that translates to Allegro PCB Router is: max_stub_length If this rule has a value greater than 0, and the nets that use this rule set don't have a max_stub property, they are assigned a max_stub net rule in Allegro PCB Router. Allegro PCB Router: (net SIG_1 (pins C18-1 U16-2 U4-3 U6-4) (rule (max_stub 50)) ) Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 129 Product Version 16.0 Allegro PCB Edtior Constraints to Allegro PCB Router Rules The following table shows the mapping of the Allegro PCB Editor constraint hierarchy to the Allegro PCB Router routing rules hierarchy. This mapping equivalence applies to Physical and Spacing constraints only. Table 6-1 Allegro PCB Editor to Allegro PCB Router Constraint Hierarchy Mapping PCB Editor PCB Router Comments Design pcb (or layer) Layer rules are used when the constraint varies by layer. NetClass class Bus class Allegro PCB Router only supports nets as members of a class. Only direct net members of an Allegro PCB Editor NetClass will be included in the Allegro PCB Router class. Diffpair class, pair Allegro PCB Router only supports nets as members of a class. Only direct net members of the Allegro PCB Editor Diffpair will be included in the Allegro PCB Router class. The rules will be inherited from the parent NetClass (if applicable) and then overridden with the Diffpair rules. Additionally, a pair object is dened with the nets as members. Xnet n/a Allegro PCB Editor Physical and Spacing constraints on Xnets are attened to net rules unless overridden by net constraints. Net net PinPair fromto Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 130 Product Version 16.0 The following table shows the mapping of the Allegro PCB Editor constraints to the Allegro PCB Router routing rules. Table 6-2 PCB Editor to PCB Router Constraint Mapping Class-Class class_class Region region Region-Class region_class Region-Class-Class region_class_class PCB Editor PCB Router Comments Minimum Line Width width Minimum Neck Width none Not translated by SPIF Maximum Neck Length none Not translated by SPIF Minimum BBVia Stagger staggered_via Maximum BBVia Stagger max_stagger Etch Allowed (see Note below) (see Note below) Ts Allowed junction_type Maximum Line Width none Not translated by SPIF Pad to Pad Direct Connections via_at_smd Line to Line Spacing wire_wire Line to SMD Spacing wire_smd Line to Pin Spacing wire_pin Line to Via Spacing wire_via Shape to Line Spacing area_wire Shape to SMD Spacing area_smd Shape to Shape Spacing area_area Shape to Pin Spacing area_pin Shape to Via Spacing area_via PCB Editor PCB Router Comments Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 131 Product Version 16.0 Shape to Test Via Spacing area_test SMD to SMD Spacing smd_smd SMD to Pin Spacing smd_pin SMD to Via Spacing smd_via Pin to Pin Spacing pin_pin Pin to Via Spacing pin_via Via to Via Spacing via_via Test Via to Test Via Spacing test_test Test Via to Line Spacing test_wire Test Via to SMD Spacing test_smd Test Via to Pin Spacing test_pin Test Via to Via Spacing test_via Buried Via Gap buried_via_gap Buried Via to Line Spacing none router uses wire_via Buried Via to Shape Spacing none router uses area_via Test Pin to Shape Spacing none router uses area_test Buried Via to SMD Spacing none router uses smd_via Buried Via to Pin Spacing none router uses pin_via Buried Via to Buried Via Spacing none router uses via_via Test Pin to Test Pin Spacing none router uses test_test Test Pin to Test Via Spacing none router uses test_test Test Pin to Line Spacing none router uses test_wire Test Pin to SMD Spacing none router uses test_smd Test Pin to Pin Spacing none router uses test_pin Test Pin to Via Spacing none router uses test_via Test Pin to Buried Via Spacing none router uses test_via PCB Editor PCB Router Comments Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 132 Product Version 16.0 Note: The Allegro PCB Editor Etch Allowed constraints default value is TRUE. This means that etch is permitted on that layer. When Etch Allowed is set to FALSE, etch is not allowed on that layer. Both Allegro PCB Editor and Allegro PCB Router assume that all layers are available for routing, unless otherwise specied. However, in Allegro PCB Router there is no way to directly restrict routing from a specic layer. This can be accomplished indirectly with the use_layer constraint, listing the layer names where routing is permitted and omitting the layer names where routing is not permitted. Allegro PCB Editor supports the Etch Allowed constraint within a Physical CSet and as an override on a region and region-class. In Allegro PCB Router, the use_layer constraint can only be set on a class or net object. When the Etch Allowed constraint is FALSE for one or more layers within a Physical CSet and that CSet is referenced by an Allegro PCB Editor net-based object (class, bus, diffpair, xnet, net, pinpair), SPIF will generate the appropriate use_layer constraints on the translated Allegro PCB Router net, class, or fromto object. SPIF does not translate an Etch Allowed constraint froman Allegro PCB Editor region or region-class. Troubleshooting Translation Problems This section offers possible solutions to common translation difculties. The information is presented in a question and answer format. Q: After I run Write Allegro PCB Router, my padstacks are the wrong shape, or they overlap, or both. What causes this? A: If the padstacks contain custom shapes, they're translated to rectangles that fully enclose the custom shapes. Q: Why does Allegro PCB Router route my power nets on signal layers? A: This occurs when etch subclasses are not designated as power layers and set to type plane in Allegro PCB Editor. Also, check whether you have shapes on the plane layers and whether the shapes are assigned to power nets. Q: After I run Update Allegro PCB Editor, I see DRC violations that are not present in Allegro PCB Router. Why? Test Via to Buried Via Spacing none router uses test_via PCB Editor PCB Router Comments Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 133 Product Version 16.0 A: If you change clearance rules in Allegro PCB Router (which is not recommended), update the DRCrules in Allegro PCB Editor to match those in Allegro PCB Router before you run a design rule check. Q: After I run Update Allegro PCB Editor, my cross-hatched shapes look different. Why? A: Allegro PCB Router does not support cross-hatched shapes, so it converts them to solid lls. When possible, convert cross-hatched shapes to solids in Allegro PCB Editor before running the translator. Q: After I run Update Allegro PCB Editor, I have unroutes in Allegro PCB Editor that were not in Allegro PCB Router. Why? A: There may be voids in the power plane in Allegro PCB Editor. Voids in shapes dont translate into Allegro PCB Router. If these voids are unnecessary, delete them. Q: Why does Update Allegro PCB Editor sometimes run slowly? A: This occurs when Allegro PCB Editors DRC checking is turned on AND there are a lot of electrical rules applied. Normally you would want to leave DRC checking on, but in this case, it translates faster if you turn it off in Allegro PCB Editor rst and then run Update DRC after translating. Allegro PCB Editor User Guide: Routing the Design Using the Allegro PCB Router Translator June 2007 134 Product Version 16.0 Allegro PCB Editor User Guide: Routing the Design June 2007 135 Product Version 16.0 7 Automatic Routing with Allegro PCB Router FromAllegro PCB Editor, you can automatically route all or part of your design (.brd or .mcm le) using Allegro PCB Router. Depending on the characteristics of your design and the level of routing interaction and control that you require, you can choose to follow one of three different Cadence recommended autorouting ows. For further details, see Autorouting Task Flows on page 137. Modes of Operation Depending on the command that you choose for autorouting, PCB Router is launched in either background or foreground mode. In background mode, PCB Router works behind the scenes to route your design while you remain active in Allegro PCB Editor. In foreground mode, PCB Router becomes active to provide you with an enhanced level of interactivity and a higher degree of routing control. You can begin autorouting by using one of the following commands. Command Menu Path Mode of Operation Level of User Interaction Required fanout_by_pick Route Fanout by Pick Background Low route_by_pick Route Route Net(s) by Pick Background Low elong_by_pick Route Elongation by Pick Background Low auto_route Route Route Automatic Background None custom_route Route Route Custom Foreground Low to Medium specctra Route Route Editor Foreground Medium to High miter_by_pick Route Miter by Pick Background Low Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 136 Product Version 16.0 Important Before running an autorouting command, you should review and complete all required procedures that apply to your design as outlined in Chapter 4, Prerequisites for Allegro PCB Router Automatic Routing, and Chapter 6, Using the Allegro PCB Router Translator, File Generation When you run an automatic routing command, the following le types of routing les are generated from your design and passed to PCB Router for processing. These les can be used as-is, or you can modify themto change routing rules and parameters or possibly relax or tighten constraints. For further information on working with routing les, see Autorouting with Do Files in the Allegro PCB Router User Guide. unmiter_by_pick Route Unmiter by Pick Background Low Type Name Purpose Design <filename>.dsn Communicates design data regarding components, connectivity, and constraints to Allegro PCB Router. Rules <filename>_rules.do Species design rules such as clearance, wiring, timing, cross-talk, and so on. Forget Rules <filename>_forget.do Species certain rules dened in the rules.do le that can be ignored during the current routing session. Command Menu Path Mode of Operation Level of User Interaction Required Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 137 Product Version 16.0 Autorouting Task Flows Cadence recommends using one of the following autorouting ows depending on the technology characteristics of your design and the level of interaction required. Mainstream Flow The Mainstream Flow performs automatic routing on the entire design or certain portions of the design using PCB Router in background mode. Note: This ow does not allow for modication of routing les. The following commands are considered part of the Mainstream Flow. Click on a command for specic usage details described in the Allegro PCB and Package Physical Layout Command Reference. Flow Use for . . . Mainstream automatic routing of designs from within Allegro PCB Editor where little to no user interaction is needed. High-speed routing high-speed designs using the PCB Router interface that require a certain degree of routing interactivity or possible editing of the various .do les created for Allegro PCB Router. High-speed Power User routing high-speed designs using the PCB Router interface that may require signicant routing interactivity and editing of the various .do les created for Allegro PCB Router. Command Use to . . . auto_route route the entire design without further intervention. route_by_pick route certain portions of the design. For example, just critical nets. fanout_by_pick route short pin escape wires from pins to vias. elong_by_pick increase etch length to adhere to timing rules. miter_by_pick change 90-degree wire corners to 45 degrees for wires, exiting pins, and vias. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 138 Product Version 16.0 High-speed Flow Use this ow if you want to review and possibly modify the generated.do les, then route the design with Allegro PCB Router running in foreground mode. Important Be aware that the original.do les generated and modied using this ow are automatically deleted when you terminate the current session of Allegro PCB Editor. You must rename these.do les to have them retained between sessions. The following commands are considered part of the High-speed Flow. Click on a command for specic usage details in the Allegro PCB and Package Physical Layout Command Reference. unmiter_by_pick remove 45-degree wire corners and change them to 90- degree corners. Command Use to . . . custom_route generate and pass a set of custom rules les from your design to PCB Router running in foreground mode to autoroute your design. For further details on this strategy, see the description for custom route in the Allegro PCB and Package Physical Layout Command Reference. specctra generate and pass a single (standard) rules le from your design to PCB Router running in foreground mode to autoroute your design. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 139 Product Version 16.0 High-speed Power User Flow Use this ow if you want to actively edit the generated .do les before loading and routing them with Allegro PCB Router running in foreground mode. The following commands are considered part of the High-speed Power User Flow. Click on a command for specic usage details described in the Allegro PCB and Package Physical Layout Command Reference. Flow Procedure 1. Choose File > Export > Router (specctra_out). When you run this command, the following actions occur: Allegro PCB Editor writes a design, rules, and forget le from the current database. The Export to Auto-router dialog box opens. 2. Click Run to export the design le to Allegro PCB Router. 3. When translation of the design le is complete, close the dialog box. 4. Open a text editor to review and edit the rules.do le. Cadence recommends that you do the following when editing any.do les: a. Copy the generated rules.do le to a different le name. b. Edit the renamed le as needed. 5. Choose Route > Route Editor (specctra) to launch PCB Router. 6. Load the forget le and the renamed .do les into Allegro PCB Router and perform an initial route of the design. Command Use to . . . specctra_out export data fromyour design database and generate routing les for use in PCB Router. specctra invoke PCB Router in foreground mode in preparation to load routing les and autoroute the design. specctra_in translate and import data from a PCB Router Session (.ses) le to update your PCB design. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 140 Product Version 16.0 7. If the initial route is completed to satisfaction, load the forget le and the original .do le(s). 8. Issue the check command to verify any design rule violations. 9. If you are satised with the results, write out a session le, and load the original les back into Allegro PCB Editor. a. Choose File Import Router (specctra_in). The Import from Auto-Router dialog box opens. b. Enter the name of the session le. c. Click Run to import the le into Allegro PCB Editor. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 141 Product Version 16.0 Autorouting Parameters Setting Parameters in the Mainstream Flow Prior to initiating autorouting using the mainstream ow, you have the opportunity to set routing parameters within Allegro PCB Editor using the Automatic Router Parameters dialog box shown in Figure 7-2 on page 143. You can set the following parameters: The Automatic Router Parameters dialog box can be accessed within Allegro PCB Editor by: clicking Params on the Routing Passes tab of the Automatic Router dialog box (choose Route Route Automatic). See Figure 7-1 on page 142. - or - choosing the Setup option from the autorouting context-sensitive menu (by clicking- right) after invoking the other Mainstream Flow autorouting commands. Parameter Type Species . . . Fanout pin and via sharing, layer depth, escape direction, and a temporary grid. Blind / Burried Via Depth both direction and depth of the routing for blind and buried vias. Pin Types all pin types. Bus Routing how component pins sharing the same, or nearly the same, x or y coordinate are routed. Seed Vias when single connections break into two shorter connections by adding a via. Testpoint how testpoints are assigned to signal nets. Miter Corners how and when 90-degree wire corners are changed to 45 degrees for wires exiting pins and vias. Spread Wires how extra space is added between wires and pins to improve PCB manufacturability without moving or adding vias. Elongation how etch length is increased to adhere to timing rules. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 142 Product Version 16.0 Figure 7-1 Accessing the Automatic Router Parameters Dialog Box Autorouting Context-sensitive Menu Choose either to display the Parameters dialog box. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 143 Product Version 16.0 Figure 7-2 Automatic Router Parameters Dialog Box For additional information, refer to Automatic Router Dialog Box described in the Allegro PCB and Package Physical Layout Command Reference. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 144 Product Version 16.0 Setting Parameters in the High-speed or High-speed Power User Flows When using either the High-speed or High-speed Power User ows, PCB Router runs in foreground mode. Therefore, autorouting parameters must be set directly within the PCB Router environment or by editing the routing .do les before you commence autorouting. For further details, refer to the Autoroute Menu commands in the Allegro PCB Router Command Reference. Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 145 Product Version 16.0 File Examples This section provides examples of the rules and forget les generated when you invoke Allegro PCB Router from Allegro PCB Editor. Sample Rules File # start of do le ######################################################################## ######## # CLEARANCE RULES # ######################################################################## ######## # rule assignments for PCB clearances # ######################################################################## ######## rule PCB (width 6) rule PCB (clearance 5.50 (type wire_wire)) rule PCB (clearance 9 (type wire_smd)) rule PCB (clearance 9 (type wire_pin)) rule PCB (clearance 5.50 (type wire_via)) rule PCB (clearance 9 (type smd_smd)) rule PCB (clearance 20 (type smd_pin)) rule PCB (clearance 11.50 (type smd_via)) rule PCB (clearance 14 (type pin_pin)) rule PCB (clearance 9 (type pin_via)) rule PCB (clearance 5.50 (type via_via)) rule PCB (clearance 5 (type test_test)) Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 146 Product Version 16.0 rule PCB (clearance 5 (type test_wire)) rule PCB (clearance 5 (type test_smd)) rule PCB (clearance 5 (type test_pin)) rule PCB (clearance 5 (type test_via)) rule PCB (clearance 5 (type buried_via_gap)) rule PCB (clearance 0 (type area_wire)) rule PCB (clearance 0 (type area_smd)) rule PCB (clearance 0 (type area_area)) rule PCB (clearance 0 (type area_pin)) rule PCB (clearance 0 (type area_via)) rule PCB (clearance 0 (type area_test)) ######################################################################## ######## # rule assignments for layer clearances # ######################################################################## ######## rule layer BOTTOM (clearance 9 (type wire_via)) rule layer BOTTOM (clearance 20 (type smd_smd)) rule layer BOTTOM (clearance 20 (type smd_via)) rule layer BOTTOM (clearance 14 (type pin_via)) rule layer BOTTOM (clearance 14 (type via_via)) ######################################################################## ######## # WIRING RULES # ######################################################################## ######## Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 147 Product Version 16.0 ######################################################################## ######## # rule assignments for pcb wiring # ######################################################################## ######## rule pcb (tjunction off) rule pcb (staggered_via on (min_gap 5)) ######################################################################## ######## # rule assignments for layer wiring # ######################################################################## ######## ######################################################################## ######## # rule assignments for net wiring # ######################################################################## ######## ######################################################################## ######## # TIMING RULES # ######################################################################## ######## ######################################################################## ######## # rule assignments for layer timing # ######################################################################## ######## rule layer TOP (restricted_layer_length_factor 1) Allegro PCB Editor User Guide: Routing the Design Automatic Routing with Allegro PCB Router June 2007 148 Product Version 16.0 rule layer BOTTOM (restricted_layer_length_factor 1) ######################################################################## ######## # Shielding RULES # ######################################################################## ######## ######################################################################## ######## # NOISE RULES # ######################################################################## ######## ######################################################################## ######## # rule assignments for net noise # ######################################################################## ######## # end of do le Sample Forget File ######################################################################## ######## # FORGET PAIR DEFINITIONS # ######################################################################## ######## forget pair (nets A3 A4)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.