|Baumeister Mediasoft Engineering|
The IC design system of the BAE software provides the Cell Router module for automatically routing the chip layout. With real jobs you should make sure any pre-routed critical traces are fixed, before starting the autorouting process. After finishing the autorouting, you should always run a before generating the data for the IC production.
5.5.1 Cell Router Startup
The Chip Editor menu is used to start the Cell Router. The Cell Router module can only be activated if a chip layout is loaded in the Chip Editor. A chip outline (to be defined with the function from the Chip Editor menu) and a valid via assignment list (use function from the Chip Editor menu) is required by the Cell Router. Please make also sure that all net list cells are placed with correct cell definitions inside the chip outline (no cell or pin and no fixed trace or via must be placed outside the chip outline) before starting the Cell Router. After activating the function, the system automatically saves the currently loaded chip layout and the Cell Router program module starts.function from the
The following error messages might be issued when calling the Cell Router and/or within the Cell Router itself:
5.5.2 Cell Router Main Menu
The main menu of the Cell Router provides the following menus and/or functions:
Themenu can either be activated by selecting the corresponding main menu item or by pressing the middle mouse button. The menu provides useful functions for changing display options such as zoom scale, color settings, trace display clipping, power connections display mode, etc.
Themain menu function is used to run a series of router passes previously defined with the main menu function.
Themain menu function is used to start a complete routing process including all default router passes (optional Pin-Via pre-placement, complete initial routing pass, rip-up routing on demand, and optimizer).
Themain menu function is used to start a single optimizer routing pass for eliminating vias, straightening trace paths and re-routing traces for better placement.
Themain menu function is used to load previously or partially routed chip layouts for re-entrant routing. Net list changes and current routing parameter settings are considered during trace path evaluation.
The Chip Editor.main menu function is used to return to the
The Cell Router options for subsequent router passes. These parameters define the design rules and technology requirements to be considered by the Cell Router (signal layer count, layer assignment, routing grid, standard trace width and spacing, pin contact mode, etc.). The parameters defined from the menu are stored with the layout.menu is used to set fundamental
Themenu provides system functions for exiting BAE and returning to the BAE main shell. The menu also provides functions for controlling the routing process, such as discard current routing results to prepare for router restart with new options, set the optimizer passes count, activate/deactivate multi-net pattern recognition during rip-up and/or optimization, set the persistence of the rip-up router, activate pin fanout routing and turn automatic security copy on or off.
Themenu provides functions for setting the strategy parameters and heuristic cost factors to be used by subsequent router and optimizer passes.
5.5.3 Cell Router System Features
Graphical Output and Status Displays
The current routing result is displayed graphically and through statistical readouts whilst routing is in progress.
The number of currently routed connections (compared to the total connection count) and the global via count are continuously reported in the status line whilst during Autorouting processes. Additionally, a routing pass info window for displaying internal routing procedure information is provided on the right side of the
Cell Router user interface. This info window contains a status line for identifying the currently active router pass type
The Cell Router work area (i.e. the workspace designated by the board outline). is the default setting after starting the Cell Router. The functions for changing the zoom factor ( and ) and the function can only be executed if chip layout data is already loaded. The function of the Cell Router can also be used to load (and display) the chip layout, i.e., starts the procedures for loading the layout data if nothing was previously loaded. Note, however, that a series of Cellrouter options (see below) can not be changed anymore once the chip layout has been loaded.menu is used to set parameters for controlling graphical output. The zoom functions ( , , ) are used to select the workspace to be displayed. Usually, one would use to display the complete
Cell Router uses the color table named
Thefunction is used to set the width at which circuit traces are displayed with their true widths. All traces having a screen width greater than the clipping width are displayed with their true widths. All traces having a screen width less than the clipping width are displayed as center lines. The default clipping width value is 1.5mm.
Thefunction is used to display connections to active areas using either cross-shaped markers on connected pins (option ) or airlines connecting pins and connection area gravity points (option ). On default the option is used.
5.5.4 Cell Router Options
The Cell Router. Unless ptherwise mention, Option parameters can only be set before starting the actual autorouting process. The option parameter settings are saved with the chip layout. I.e., Cell Router options need not be redefined on subsequent Cell Router calls, unless parameter changes are really required for the chip layout to be automatically routed.menu is used to define the design rules and technology requirements to be considered by the
Routing Grid, Standard Trace Width, Standard Minimum Distance
The Cell Router works as a grid-based router. The function from the menu is used to define the routing grid before starting the routing process.
The default routing grid setting at the first Cell Router call for a particular chip layout is . The can be used to set a different routing grid. Each routing grid change is stored with the chip layout and also sets the standard trace width and minimum clearance distance values. Both the standard trace width and the standard minimum distance can be changed after specifying a new routing grid (use functions and , respectively). Note however that the sum of trace width + minimum distance must not exceed the current routing grid; otherwise the Cell Router issues an error message when starting the routing process (note warnings such as and/or , and modify trace width and/or minimum distance until either of the messages or is issued). The trace widths and minimum distance settings are usually retrieved from the process parameters provided by your chip manufacturer.
The built-in off-grid recognition of the Cell Router allows for off-grid placement of pins and pre-routed traces. I.e., the Cell Router is able to connect objects which are not placed on the routing grid. Note however that on-grid items make the job much easier for the Cell Router since off-grid routing is quite time-consuming and could even prevent the Cell Router from connecting certain items in a simple way. It is recommended to use a reasonable grid for part placement to avoid off-grid pin placement and to enable pin channel routing for better routing results.
Please note that smaller routing grids result in quadratic growth of memory requirements for the routing matrix, and that CPU time usage during the autorouting process rises even more dramatically (due to a non-polynomial growth of the number of possible routing solutions). It is recommended to refrain from selecting unnecessary small routing grids.
The standard trace width is the track width to be used for routing the connections. The standard trace width applies for all nets except for those where certain net attributes are defined. If a
Signal Layer Count and Layer Assignment
The Cell Router. The routing layer count can range from 2 to 12.function from the menu is used to specify the number of signal layers to be simultaneously routed by the
Thefunction is used to set the preferred routing direction (horizontal, vertical or all directions) for each routing layer. With the function it is also possible to define trace keepout layers (i.e., layers where routing is prohibited) or to remove layers from the routing layer list (which will decrement the signal layer count). The default layer assignments are horizontal for the first routing layer, vertical for the second layer, horizontal for the third layer 3, etc. Changing the routing layer count with the function resets the layer assignments.
The Cellrouter simultaneously routes all routing layers. Single-layer routing can be carried out with routing layer count 2 and one of the two routing layers defined as prohibited layer.
The layer assignments (except for the signal layer count) can be changed between different router passes, i.e., without the need to restart the complete routing process. Restrictions introduced with layer assignment changes will not cause a deterioration of the current routing result in subsequent router passes. I.e., the Cellrouter will try to but not necessarily remove all previously routed traces from prohibited layers, if those layers were available for routing before.
Maximum Via Count
The Cell Router to rout the layout without vias. The maximum via count can be changed between different router passes, i.e., without the need of restarting the complete routing process. Lowering the maximum via count changes will not cause a deterioration of the current routing result in subsequent router passes. I.e., the Cell Router will try to but not necessarily remove previously placed vias.function is used to set the maximum number of vias per circuit trace. The default maximum via count is 30. A maximum via count of 0 forces the
The Cellrouter is allowed to place vias with an offset or not. No via offset means that vias are placed in-line with the traces (i.e., on the routing grid). Routing with via offset means that vias can be shifted by half the routing grid at their placement. The choice to offset or not must be calculated by the user taking into consideration the routing grid, trace width, clearance distance and via size. Routing with via offset may well allow to use routing channels which would otherwise be occupied by in-line placed vias on adjacent grid channels. This can have significant effect on routing success. It is recommended to refrain from routing with via offset when using larger vias since this could cause poor routing results.option controls whether the
The Cell Router can alternatively use a routing grid shifted by half of the selected routing grid, e.g., half-grid routing with 4um routing grid can also utilize the 2um routing grid. The current standard trace width and minimum distance settings are not affected by the sub-grid routing option. Half-grid routing yields better use of regions nearby off-grid placed objects such as pin channels at off-grid placed parts, thus considerably increasing routability of dense layouts.function is used to activate half-grid routing (option ). On default half-grid routing is deactivated (option ). Half-grid routing means that the
Pin Contact Mode
Thefunction is used to allow (option ) or avoid (option , default) pin corner routing. This feature works on approximately rectangle-shaped pads and controls whether traces can exit such pads at 45 degree angles or not. Routing with pin corner obstruction can produce better looking layouts, but could also impede 100% routing. Note that connecting pins with a size approximately equal to or smaller than the trace width could fail. The option should not be used with designs that include thick traces. Note also that bus routing can produce unpredictable results when switched to pin corner obstruction.
5.5.5 Cell Router Control
Themenu provides a series of functions for controlling the routing process.
Thefunction discards the previous routing result. This function can be used to restart the routing process with new routing options and strategies.
Thefunction is used to set the number of Optimizer routing passes to be automatically activated by the function after obtaining a 100% routing. The Optimizer passes count can range from 0 to 99; 2 Optimizer passes are activated on default.
Router Cleanup, Optimizer Cleanup
The Cellrouter makes use of a unique pattern search recognition algorithm for identifying disturbing traces during rip-up and cross-net optimization. The Cellrouter is able to select and remove disturbing traces during rip-up and perform cross-net changes during optimization. Cleanup during cross-net optimization usually reduces via counts dramatically and thus is also called if the rip-up router (temporarily) fails to find an acceptable solution. It is recommended to refrain from turning off cleanup when running rip-up on complex designs or optimizing dense chip layouts. Turning cleanup off results in sequential processing of the connections and can produce contenting results when running final Optimizer passes on certain layouts (however, more passes are then required for pushing and/or straightening trace bunches).function is used to activate (default option ) or deactivate (option ) cleanup passes during rip-up routing. The function is used to activate (default option ) or deactivate (option ) cleanup passes during optimization. When running cleanup passes (note message issued by the routing progress report), the
Rip-Up Trees, Rip-Up Depth, Rip-Up Retries
Thefunction sets the maximum number of traces allowed to be simultaneously ripped up per rip-up cycle. The rip-up trees number is set to 2 on default, and can range from 1 to 9. The function is used to control the persistence of the rip-up process. A high value will result in higher persistence. The rip-up depth value can range from 1 to 999, and is set to 50 on default. The function sets the maximum number of rip-up retries for routing a particular trace, thus defining the local rip-up router intensity. The rip-up retries number is set to 2 on default, and can range from 0 to 99. Higher rip-up control parameters increase the persistence and intensity of the rip-up routing process, and thus can be used for special problems such as completing 100% routing without intermediate optimizer passes or for routability check.
Once 99.5% routing completion is achieved, the Rip-Up parameters are automatically increased to Rip-Up Trees 6, Rip-Up Level 200 and Rip-Up Retries 10, unless higher values are already set. This helps to avoid the time-consuming Optimizer cleanup passes between Rip-Up passes if only a few open connections are left.
Pin Via Pre-Place
The Cell Router from blocking pin rows through extensive use of the cell/pin layers at an early stage of the routing process. The pin via router does not (re-)rout pins which are already connected to fixed traces. Redundant pin via connections are later eliminated by the Optimizer.function is used to activate (option ) or deactivate (default option ) the initial routing algorithm for connecting cell pins to signal inside layers. With pin fanout routing activated the function will start with the pin via pre-place initial routing pass. The fanout router creates short trace stubs to connect netlist pins to vias. The fanout router ignores any layer-specific routing direction preferences to avoid pin channel obstructions. The purpose of the fanout router is to prevent the
Thefunction is used to activate (default) or deactivate automatic security copy of intermediate routing results.
5.5.6 Cell Router Strategy
Themenu provides functions for setting routing strategies such as via cost, pin channel cost, packing cost, bus bending cost, dynamic density cost, etc. These settings should be used with care. Only change one or two at a time. Poor routing results are often found to be caused by random strategy parameter settings. The default settings will work best in the vast majority of cases. It is strongly recommended to change strategy parameters in special cases only and to refrain from using extreme values.
There are strong mutual dependencies between different Cell Router strategy parameters. A high via cost value (for eliminating vias) will necessarily result in more ignorance of routing direction preferences, thus compensating the cost factor for keeping preferred routing directions. Note also that strategy parameters only define subordinate options for the routing process, due to the fact that it is much more important to achieve a 100% routing result instead of, e.g., keeping preferred routing directions. I.e., some cost factors may be completely ignored during initial routing and rip-up and will only be considered by the Optimizer. Tabelle 5-1 provides an overview to all of the routing parameters which can be set from the Strategy menu.
Thefunction is used to designate the Optimizer strategy. The default option causes the Optimizer to ignore layer-specific preferred routing directions in order to obtain the greatest reduction of vias. The option causes the Optimizer to consider layer-specific preferred routing directions, which could increase the number of vias. The option causes the Optimizer to prefer diagonal (45 degree) routing where appropriate.
Thesetting is used by the Router and the Optimizer. A high via cost factor results in fewer vias but more complex circuit traces. A low via cost factor permits more vias within the restraint of the maximum via count (see above). The via cost value can range from 2 to 20; the default value is 10.
Pin Channel Cost
Thesetting is used by the Router only. A high pin channel cost factor results in infrequent use of pin channels. A low pin channel cost factor permits the frequent use of pin channels. Pin channels are the regions between adjacent part pins. The pin channel cost value can range from 2 to 20; the default value is 10.
Counter Direction Cost
Thesetting is used by the Router and the Optimizer. A high counter direction cost factor results in strict adherence to the layer-specific preferred routing directions. A low cost factor permits frequent variations from the preferred direction. The counter direction cost value can range from 0 to 5; the default value is 1.
Direction Change Cost
Thesetting is used by the Optimizer only. A high direction change cost factor results in less circuit corners. A low direction change cost factor permits frequent changes in routing directions. The direction change cost value can range from 0 to 5; the default value is 2.
Thesetting is used by the Router only. A high packing cost factor results in high bundling of circuit traces. A low packing cost factor will result in wider distribution of circuit traces. The packing cost value can range from 0 to 5; the default value is 1.
Dynamic Density Cost
Thesetting is used by the Router only. The dynamic density cost factor controls the global distribution of circuit traces over the entire layout. A high dynamic density cost factor results in a more even distribution of the circuit traces. A low cost factor gives more influence to routing costs. The dynamic density cost value can range from 0 to 50; the default value is 10.
Bus Bending Cost
Thesetting is used by the Router only. The bus bending cost factor controls the bending of traces after passing a pin channel. A high bus bending cost factor results in high priority of bending. A low bus bending cost factor results in less bending. The bus bending cost value can range from 0 to 5; the default value is 2.
Rip-Up Distance Cost
Theand settings are used by the Router during rip-up.
The rip-up distance-1 cost factor controls the use of channels left by ripped up traces in the near distance (0 to 1 grid point). A high distance-1 cost factor results in less use of these channels, thus forcing more local changes during rip-up and retry routing. The rip-up distance-1 cost value can range from 0 to 10; the default value is 5.
The rip-up distance-2 cost factor controls the use of channels left by ripped up traces in the far distance (2 grid points). A high distance-2 cost factor results in less use of these channels, thus forcing more global changes during rip-up and retry routing. The rip-up distance-2 cost value can range from 0 to 10; the default value is 2.
Trace Crossing Cost
Theis used to set the trace transition cost factor, which is considered by the Router and the Optimizer to control cleanup pattern recognition during multi-net optimization. A high trace crossing cost factor allows for a more complex routing with more traces crossing each other, thus also producing more vias. A low trace crossing cost factor leads to increased (and more time-consuming) analysis during cross-net optimization, thus eliminating more vias. The trace crossing cost value can range from 2 to 100; the default value is 10.
Diagonal Routing Cost
The Optimizer considers thesetting on routing layers where the routing option is selected (see function above). A high diagonal routing cost factor causes the Optimizer to use more diagonal routes. A low diagonal routing cost factor results in less diagonal routing. The diagonal cost value can range from 0 to 10; the default value is 5.
Off-Grid Routing Cost
Thesetting is used by the Router and the Optimizer, and is considered when routing with the half-grid option (see above). A high off-grid routing cost factor results in less use of the sub-grid. A low off-grid routing cost factor permits frequent use of the sub-grid. The off-grid routing cost value can range from 0 to 5; the default value is 2.
5.5.7 Cell Router Functions
Some of the actual autorouting procedures provided with the Cell Router can be called from the main menu, others can be activated using either router control parameters or the and functions (see below).
The current routing result is displayed graphically and through statistical readouts whilst routing is in progress. The routing process can be stopped at any time by pressing a key, causing the Cell Router to revert to the (currently best) routing result.
Pin Via Pre-Place
Cell Router from extensively using the cell/pin layers at an early stage of the routing process. This strategy achieves earlier 100% routing success in a range of designs. Redundant via connections created by are later eliminated by the .is a special initial routing algorithm for connecting netlist pins to other layers through short trace stubs with single vias. A channel width setting is required for these fanout routing passes. The fanout router doesn't consider layer-specific preferred routing direction settings. The purpose of pin via pre-routing is to prevent the
Single-Pass Initial Routing
The single-pass Initial Router performs signal trace routing considering preferred routing directions, a certain channel width and a maximum via count per two-point connection. The channel width is the maximum permitted deviance from preferred directions. The channel width is specified in routing grid steps. A zero channel width removes the restraints on deviating from the preferred direction, i.e., the entire board area is then released for routing. The maximum via count used by the Initial Router will never exceed the value set with thefunction from the menu (see above). The Initial Router places traces close together, thus using minimum space in order to leave more room for subsequent traces (trace hugging). The Initial Router also uses advanced techniques of copper sharing where appropriate. The Initial Router processes power layer connections and attributed nets (with non-default routing widths, minimum distance settings and routing priorities) with highest priority.
Complete Initial Routing
The Complete Initial Router automatically activates four Initial Router passes to rout all open connections which can be routed without rip-up and retry. With each Initial Router pass the channel width and the maximum via count is increased. The first Initial Router pass runs with maximum via count zero. The last Initial Router pass runs with channel width zero and a maximum via count according to the parameter set with thefunction from the menu (see above).
The Rip-Up/Retry Router attempts to route all open connections until the board is completely routed. Connections which can be routed without rip-up are routed first. Then the Rip-Up/Retry Router selects and eliminates traces (rip-up) and re-routes them to create space for the unroutes. For this purpose, the router gathers information on dense board areas and increases the cost of routing in such areas. The Rip-Up/Retry Router is supported by a sophisticated array of heuristic strategy parameters. The cost factors can be dynamically adapted to the current routing problem, thus controlling the "price" of strategies such as via placement, routing against preferred directions, using pin channels, etc. It is strongly recommended to refrain from modifying these strategies, unless the routing success is not what would be expected. When changing cost factors, slight adjustments to a few can make significant improvements or make things much worse. The Rip-Up/Retry Router is guarded by a unique backtracking algorithm, which not only prevents from a deterioration of the result or a dead-lock during rip-up or optimization but also is able to exploit a new and/or better routing solution. The Rip-Up/Retry Router automatically activates intermediate Optimizer passes if a single rip-up pass fails to achieve 100% routing success.
Thefunction is used to start a single pass. The usually is applied after 100% routing to optimize the layout for manufacturing. The eliminates redundant vias, smoothes traces and attempts to rout open connections. Channel width zero is used during optimization and the maximum via count is set to the same value as defined with the function from the menu (see above).
Themain menu function is used to start a complete routing process including all router passes such as Pin Via Pre-Placement (optionally), complete initial routing, rip-up/retry routing (if necessary) and optimization. This is the standard procedure for performing complete routing of the chip layout. The number of final passes can be set with the function from the menu (see above). The Pin Via Pre-Placer is only activated if the option has been selected with the function from the menu.
The Cell Router options and strategies should be set as required (see above). Fixed traces (and vias) are left unchanged. Unfixed traces are evaluated considering changed part placement, current via assignments, modified keepout and power plane definitions, net list changes, and current Cell Router parameter settings (routing grid, standard trace width, corner cutting, clearance, etc.). The function tries to adjust unfixed traces to conform with the design rules. Arc-shaped trace segments are replaced by straight segments where possible. Unfixed traces not adjustable to the design rules are completely or partially discarded. The function can be used to complete the routing after (re-entrant routing).function is used to load previously or partially routed layouts to prepare for re-entrant routing. Before starting the function, the
Batch Setup and Batch Start
Thefunction is used to start a routing process with different user-defined router passes. The function is used to schedule up to ten of the following autorouting procedures to be subsequently processed with the function:
pass requires a routing channel width specification and a maximum via count setting. requires a routing channel width specification. requires the number of required passes (up to 999).
|Baumeister Mediasoft Engineering, Clontarf, Dublin 3, D03 HA22, Ireland
© 2022 Manfred Baumeister