ELECTRA
User Guide Version 1.2, March 2004
Copyright Notice
Copyright © 2003-2004 by KONEKT, SPRL. All rights reserved. No part of this work may be reproduced without receiving the prior permission of the copyright owner.
All brand or product names mentioned in this guide are trademarks or registered trademarks of their respective owners.
In particular:
SPECCTRA® is a registered trademark of Cadence, Inc. Windows is a trademark of Microsoft Corp.
Disclaimer
KONEKT SPRL AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2
ELECTRA v1
1 Overview of ELECTRA Routing Technology.......................................5 2 Main Features..........................................................................7 3 CAD Flow Integration..................................................................8 4 Using ELECTRA.......................................................................9 4.1 4.2 4.3 4.4 4.5 4.6 4.7
Pushbutton Autorouting.........................................................9 Basic Routing Strategy........................................................10 Analyzing Routing Results....................................................11 Improving routability...........................................................13 Restarting the autorouter.....................................................13 Advanced Rules Hierarchy...................................................14 Mouse driven Viewing Navigation...........................................17
5 Quick Command Reference........................................................19 5.1 5.2 5.3 5.4
Notations.......................................................................19 Descriptors.....................................................................19 Types:...........................................................................20 Command Reference.........................................................21
autoroute.....................................................................................................................21 bestsave......................................................................................................................21 bus................................................................................................................................21 check............................................................................................................................22 circuit............................................................................................................................22 clean.............................................................................................................................23 cost...............................................................................................................................24 delete all wires............................................................................................................25 direction.......................................................................................................................26 fanout...........................................................................................................................26 filter...............................................................................................................................27
3
grid...............................................................................................................................27 limit...............................................................................................................................28 protect..........................................................................................................................29 quit................................................................................................................................29 read..............................................................................................................................29 recorner.......................................................................................................................30 route.............................................................................................................................30 rule...............................................................................................................................31 select............................................................................................................................32 status_file....................................................................................................................32 tax.................................................................................................................................32 unprotect.....................................................................................................................34 unselect.......................................................................................................................34 write..............................................................................................................................34 6 Appendix..............................................................................35
4
ELECTRA v1
1 Overview of ELECTRA Routing Technology
ELECTRA™ is a new generation of Shape-Based Autorouting software for PC boards. By contrast to traditional gridded maze autorouters, a shape-based approach allows for more efficient use of routing area and is more suited to handle complex design rules requirements of high density PCB designs.
In addition to its shape-based architecture, ELECTRA routes with conflicts and uses a multi-pass cost-based conflict
reduction algorithm to find a routing solution adapting to the natural flow of the nets. Crossing Clearance Figure 1
On the initial passes the router uses a relatively low cost for accepting a routing path solution with crossing and clearance conflicts (figure 1). Costings are then slowly increasing on subsequent passes, as illustrated on figure 2.
5
COSTS CONFLICT PASSES
Figure 2
By allowing nets to be routed with conflicts, autorouted wires will initially start with an ideal path. The final routing solution closely mimics interactive routing results in terms of optimal wire length and number of vias.
As the router iterates though the passes, it uses conflict
information to generate a solution resolving the conflicts and untangling the routed wires.
When the design is easily routable, the conflict curve drops down very rapidly. When the design is difficult, the conflict reduction rate will exhibit oscillations. Routing history can be monitored to predict and qualify routability of a design. (Read 2.4 for more details on Analyzing Routing Results)
Adaptive routing algorithm is a proven approach to
systematically reach high completion rate on complex high density PCB designs.
6
ELECTRA v1
2 Main Features
§ Adaptive Shape-Based routing strategy § Concurrent routing of up to 256 layers § Hierarchical rules-based autorouting § Memory routing pass § Blind/buried/staggered vias § Vias under SMD pads § Customizable cost factors § Batch routing option § Advanced Rules
o Layer assignment of nets wires o Width and Clearance by layer
o Via assignment by default, net class and net o Net and net class rules by layer
§ Post route cleanup optimization (Bend and Via removal)
7
3 CAD Flow Integration
ELECTRA supports a broad spectrum of PCB CAD systems by reading the widely-employed Design File (DSN) format.
ELECTRA’s routing results are saved into standard route file format (RTE) or session files (SES). ELECTRA is thus a plug-and-play autorouter for any existing PCB CAD system
environment that has a SPECCTRA® design file interface. The design flow for employing ELECTRA is illustrated by the diagram below:
SPECCTRA Design or Session file PCB CAD System ELECTRA SPECCTRA RTE or Session file Figure 3
8
ELECTRA v1
4 Using ELECTRA
4.1 Pushbutton Autorouting
1. Start ELECTRA, select the menu File / Load and load the demo design located in 2. Select the icon as shown above to run the pre-defined routing strategy. You can now watch the router in action! Electra can also be controlled through typed-in commands or a command file (DO file) for unattended batch operation. 9 The equivalent command to run the pre-defined routing strategy is named autoroute. Click in the command entry log window and type in autoroute 4.2 Basic Routing Strategy The adaptive routing strategy method generally requires many routing passes and involves selection of the right commands to build the best strategy. Sequence of commands can be saved in a text DO file for future reuse. Use the “File/Execute Do file…” menu to execute a Do file. A pre-defined routing strategy DO file can be found in the executable directory, it is called “basic.do”. The strategy is as follows: #============== # BASIC DO file #============== # Phase 1 - Initial #------------------ bus diagonal fanout 5 # # Phase 2 #------------------ route 20 clean 2 # # Phase 3 #------------------ route 25 16 clean 2 # # Phase 4- Cleanup #------------------ filter 5 # # Phase 5 - Final #------------------ recorner diagonal status_file 10 ELECTRA v1 4.3 Analyzing Routing Results Select the button as shown to get a routing report in the log window. Alternatively you can use the command report status to generate a report. To determine if a design is routable, check the status report for convergence signs: 11 § Conflict reduction rate is higher than 15% after passes 2-5 Here is an example: ELECTRA Version v1.0.0 Design = C:\\Designs\\b1.dsn Report Time = 04:59:28 Nets = 325 Components = 74 Connections = 395 Vias = 114 Signal Layers = 2 Power Layers = 2 Completion = 100.00% Unroutes = 0 Routing Time = 00:00:30 ________________________________________________________________ | Pass | Conflicts| | | | | CPU Time | | Name | # |Xing|Clear|Fail|Unrte|Vias|%Red| Pass | Total | |________|___|____|_____|____|_____|____|____|________|________| | Route | 1| 560| 32| 0| 0| 32| | 0:00:03| 0:00:03| | Route | 2| 306| 5| 0| 0| 37| 47| 0:00:04| 0:00:07| | Route | 3| 178| 2| 1| 0| 47| 42| 0:00:03| 0:00:10| | Route | 4| 100| 1| 0| 0| 57| 43| 0:00:03| 0:00:13| | Route | 5| 53| 0| 0| 0| 76| 47| 0:00:03| 0:00:16| | Route | 6| 15| 0| 0| 0| 96| 71| 0:00:02| 0:00:18| | Route | 7| 3| 0| 0| 0| 108| 80| 0:00:02| 0:00:20| | Route | 8| 2| 0| 0| 0| 108| 33| 0:00:01| 0:00:21| | Route | 9| 2| 0| 0| 0| 108| 0| 0:00:01| 0:00:22| | Route | 10| 2| 0| 0| 0| 108| 0| 0:00:00| 0:00:22| | Route | 11| 2| 0| 0| 0| 108| 0| 0:00:00| 0:00:22| | Route | 12| 1| 0| 0| 0| 111| 50| 0:00:00| 0:00:22| | Route | 13| 1| 0| 0| 0| 111| 0| 0:00:00| 0:00:22| | Route | 14| 2| 0| 0| 0| 112| 0| 0:00:00| 0:00:22| | Route | 15| 1| 0| 0| 0| 111| 50| 0:00:01| 0:00:23| | Route | 16| 0| 0| 0| 0| 114| 100| 0:00:01| 0:00:24| |________|___|____|_____|____|_____|____|____|________|________| 12 ELECTRA v1 4.4 Improving routability 1. A unroute is a connection where the autorouter has not been able to find a path. This can probably be related pin that cannot be accessed, the presence of some blockage or high congestion area. 2. High crossing counts, indicative of insufficient signal layers and/or via starvation 3. High clearance counts may come from design rules errors or improper layer route direction 4. Go gridless, it will help in achieving higher completion rate. 5. Verify layer directions 6. On 2 layers boards you might have to run many passes (~100). Note that passes above 5 run faster since only nets that are in conflict are rerouted. 4.5 Restarting the autorouter The syntax of the route command allows the control of the starting pass count: route When the number of completed passes (n) is less than 15, the When the number is higher than 15, then the 13 4.6 Advanced Rules Hierarchy ELECTRA reads the rules constraints out from the DSN file. The host CAD system interface embeds the design rules into the transferred DSN file. Rules can be set globally (PCB) or specifically to layers, net classes or nets. When rules are applied at these different levels, a rule's hierarchy precedence takes place. The autorouter rule precedence is PCB < layer < class < net This shows that PCB rules have the lowest priority and the net rules, the highest. Here is the list of rules that are embedded in the design file (DSN) and that are supported by ELECTRA. There are two categories of rules type: clearance and wiring rules as shown by the rule descriptor below. [(clearance [(limit_bends [ ELECTRA v1 Separate clearance can be assigned by object type such as wire_smd (wire against SMD pad). The object types are: § wire § pin § smd § via § area Examples: 1. Setting PCB width and clearance: rule pcb (width 8) rule pcb (clearance 8) rule pcb (clearance 6 (type wire_via)) 2. Setting a layer rule applying to all nets in a design: rule layer s1 s2 (width 6) (clearance 6) 3. Setting a special net rule: rule net sig1 (clearance 12) rule net sig2 (clearance 10 (type via_pin)) 4. Limiting wrong way routing distance: rule net clk (limit_way 150) This will force the router to use a via if it exceeds the wrong way limit. 15 5. Limiting number of vias per connection: rule pcb (Limit_vias 4) rule class fast (limit_vias 1) Prevent via use: rule class c1 (limit_via 0) On entire design: unselect all vias 16 ELECTRA v1 4.7 Mouse driven Viewing Navigation The intrinsic mouse navigation methods have been designed for a three button mouse, and involve either a click, or a drag operation. • Zoom To Area: Drag the middle mouse button in an upward motion from the lower-left or lower-right starting corner until the desired view is within the elastic bounding box… OR • Pan To: Press and release the middle mouse button at the desired center point for the new view … • Zoom Out: Drag the middle button in a downward left or right motion until the outer elastic box visually shows the desired zoom out percentage. The displayed inner box represents the current viewport… OR 17 • Full View: Drag the middle button in a horizontal motion either left or right until a fixed rectangular box appears at the starting point. Upon release, the display will expand to a viewport that fits the chip outline of the database … OR Note: Toolbar view icons can be used for viewing navigation as well as hot keys such PgUp to Zoom In, PgDown to Zoom Out, F5 to Refresh and Home to get a Full View. 18 ELECTRA v1 5 Quick Command Reference 5.1 Notations [ ] = option | = OR { } = parameter inside can appear multiple times <> = includes a descriptor 5.2 Descriptors [(priority (class [(circuit { [forbidden | high medium | low | free | (layer_rule { [(clearance [(limit_bends [ [(limit_crossing [ 5.3 Types: [ smd_via_same_net | via_via_same_net | buried_via_gap | antipad_gap | pad_to_turn_gap | smd_to_turn_gap | drill_gap] [way | cross | via | off_grid | off_center | side_exit | squeeze] [pin | smd | via | wire | area] [starburst] 20 ELECTRA v1 5.4 Command Reference autoroute Invokes a general purpose routing strategy. The strategy can be customized by changing the command file located in the executable directory. The command file is named “basic.do”. bestsave bestsave on | off Controls automatic saving of the best routing solution during a multi-pass routing run. Routing result is saved into a file named “bestsave.rte” at the same location as the design file. bus bus [diagonal] Invokes a bus routing pass only on regular array of pins with collinear connections where the pins share a common X or Y coordinate. This is particularly effective on memory arrays. In this mode, the router will not generate conflicts, so rules must allow for sufficient space. By default traces are routed orthogonally, unless the diagonal option is specified. 21 check This command can be used to run a DRC (design rules check) and visually tag the violations. This is used in particular when a rule is changed. A check is automatically invoked after every routing pass. The total number of violations is shown on the status line and visual feedback is added to the layout view to indicate conflict locations. circuit circuit [class Used to schedule the routing order priorities, specific vias to be used and allowed routing layers amongst nets and net classes. [(priority The value of priority ranges from 0 to 255, the default is 10. The use_via rule assigns one or more via padstack to a class or a net. If more than one padstack is defined, the autorouter will favor the smallest padstack in size. 22 ELECTRA v1 The use_layer rule assigns routing layers where nets and classes must be routed. Note that the use_layer rule will override a layer unselection rule. Examples: # Routing a net / class to specific layers circuit net sig1 (use_layer L1 L2) circuit class fast (use_layer M1 M2) # Assigning routing priority circuit net sig1 (priority 200) clean clean [ The clean command reroutes all the connections with higher costs settings and helps achieve § Wire optimization with minimum bends § Vias minimization § Less off-center SMD pad entry § Exit SMD pad on long edge 23 cost cost User adjustable routing costs. This command sets the internally defined costs to a fixed value. By default, some of the cost values get internally modified during autorouting. It is not recommended to change cross and squeeze costing specifically. Cost values can range from 0 to 100. A value of -1 will reset the cost value. Predefined cost description values can be used: Cost Value Forbidden 100 High 50 Medium 25 Low 8 Free 0 The following costs can be set: Option Description cross crossing conflict squeeze wire to wire clearance conflict via wire to via clearance conflict way cost of routing in non preferred layer direction off_grid Cost of routing off grid if a grid was specified off_center Cost of entering or exiting a SMD pad off center side_exit Cost to exit SMD pads on long side 24 ELECTRA v1 layer If type is length it is the cost of using the layer. If type is way, it is the cost of routing on non preferred direction Examples: cost layer S1 forbidden cost layer S2 high (type way) cost via high delete all wires Removes all existing wiring, except for the protected wires. 25 direction Changes preferred routing direction by layer direction [horizontal | vertical | orthogonal | off] fanout fanout [ [(direction[in_out | in | out])] [(pin_share [on | off])] [(via_share [on | off])] {[(pin_type [active | signal | power | unused | all | single])]} [(max_len AutoRoutes short escape wires with a via from SMD pads. Recommended on SMD boards having more than 2 routing layers. Fanout direction can be set so that fanout vias are added inside SMD components, and/or outside. Fanout can be limited by pin type, for example pins connected to power nets only. Examples: # 5 fanout passes fanout 5 # Depth for blind & buried vias fanout (depth opposite 2) (share_len 500) fanout 5 (pin_type signal) (via_share on) 26 ELECTRA v1 # Allow 2 wires between vias fanout (smart_via_grid two_wire_between) # Sets via to microvia & grid 25 grid via 25 MICROVIA # Fanout using a grid of 25 fanout (via_grid 25) filter filter [ Removes wires that are in conflict grid grid [via wire Specifies wire and via grid spacing. The grid wire command overrides the wire grid set by the grid smart command. Examples: # use a routing grid of 8.333 grid wire 8.333 # use a different routing grid 5 on layer 1 grid wire 5 layer 1 27 limit limit [cross [ via [ The limit command sets absolute limit values to be applied to each connection. Control is provided to limit maximum allowed number of intersecting wire, number of vias per connection, number of bends, and the maximum distance of non preferred (wrong-way) routing. The range of limit for Examples: limit via 2 limit way 200 # resets routing limit to default value limit way –1 28 ELECTRA v1 protect protect all wires Prevents router from changing or deleting protecting wires, e.g. this option is useful to protect pre-routed GND and VCC nets. Note that the router is still allowed to connect to protected wires. quit quit The quit command can be entered from the Command entry area or from a DO file. If routes results where not saved, the autorouter terminates his process by prompting for confirmation to save or not the route results. read read routes Loads a routes file (RTE) 29 recorner recorner [diagonal] The recorner command charges 90 degree wire corners to 135 degrees. It is performed on wire corners exiting pins and vias, as well as bend and slant wire configuration. route route [ When the number of completed passes (n) is less than 15, the When the number is higher than 15, then the 30 ELECTRA v1 rule rule [pcb | layer net Rules can be set globally (PCB) or specifically to layers, net classes or nets. There are two categories of rules type: clearance and wiring rules as shown by the rule descriptor below. [(clearance [(limit_bends [ 31 select select [layer | via] { [all [layers | vias] | [comp] { Enables the autorouter to use specific layers and vias for routing. Allows for selecting net for routing. Note: Names are case sentitive status_file status_file Creates a status file with routing history and located in the design directory. The status filename is named after the design name, with the extension .sts. tax tax [way | cross | via | off_grid | off_center | side_exit | squeeze | layer positive_integer>] This is an alternative method of using the cost command. This is the recommended way to adjust costing. The tax command applies a multiplier to control internal costing. The default value for tax is 1. 32 ELECTRA v1 The following costs can be set: Option Description Cross crossing conflict squeeze wire to via clearance conflict Via usage of a via Way cost of routing in non preferred layer direction off_grid Cost of routing off grid if a grid was specified off_center Cost of entering or exiting a SMD pad off center side_exit Cost to exit SMD pads on long side Layer If type is length it is the cost of using the layer. If type is way, it is the cost of routing on non preferred direction Examples: tax layer S1 1.2 tax way 1.2 tax via .5 33 unprotect unprotect Unprotect existing tracks. Allows router to reconsider them. unselect Disallow the autorouter the usage of specific layers and vias for routing. This command can be used to reduce the number of routing layers than originally specified. Example: unselect layer s1 s2 unselect [layer | via] { [all [layers | vias] write write [routes | session] [ Command to save results to a routes file or a session file.The session file provides an integrated file to manage design data and routing data. 34 6 Appendix Running ELECTRA in batch mode: Options Function Example: electra demo.dsn –do demo.do –quit ELECTRA v1 35 Index autoroute, 22 Batch, 36 bestsave, 22 bus, 22 check, 23 circuit, 23 circuit_descriptor, 20, 23 class_descriptor, 20 clean, 24 Clearance, 5 clearance_type, 21 cost, 24 cost_descriptor, 20 cost_descriptors, 24 cost_type, 21 Crossing, 5 delete, 26 direction, 27 fanout, 27 filter, 28 grid, 28 layer_rule_descriptor, 20 36 limit, 29 object_type, 21 order_type, 21 priority, 20 protect, 30 quit, 30 read, 30 recorner, 31 route, 31 routes, 35 rule, 32 rule_descriptor, 15, 20, 32 select, 33 session, 8, 35 SPECCTRA, 8 status_file, 33 tax, 33 unprotect, 35 unselect, 35 use_via, 20 write, 35 zoom, 18
因篇幅问题不能全部显示,请点此查看更多更全内容