Glade

Floorplan commands

Floorplan->Initialise Floorplan

(Re)Initialises the floorplan.

Init Floorplan

The Horizontal pin layer and Vertical pin layer fields set the layer for pins created on the top/bottom and left/right edges of the design boundary, respectively. Aspect ratio is the block aspect ratio, with numbers greater than 1 representing tall blocks and numbers less than 1 giving wide blocks. Utilisation is the desired cell utilisation, i.e. the ratio of total cell area to design boundary area.

Floorplan->Create Rows...

Create Rows

Creates rows for use with Place & Route. The design must have standard cells and a valid design boundary (a rectangle on the boundary layer). A valid Site name must exist, which will normally be found automatically from the library is a cell exists with the boolean property 'site'. Row orientation is the desired row orientation - R0, R180, MX and MY create horizontal rows wheras the rest create vertical rows. Flip alternate rows if checked will flip the orientation of adjacent rows to provide power track sharing in libraries that support it. Rows per set can be either 1 or 2 and specifies the number of rows placed together before any row spacing is applied. Row separation is the seperation between sets of rows, in microns. Altenatively Row utilisation can be give as a percentage. Margin specifies a margin around the rows, which are created inside the design boundary (boundary layer).

Floorplan->Create Groups...

Create Groups

Creates and/or edits groups for use with Place & Route. Any existing groups are shown in the Groups list box on the left; clicking on a group in the list box updates the Group name field, and also the Region name field if there is a region associated with the group. Groups can be created using Create Group; instances must be selected first and a Group name must be specified (or be an existing group name). Delete Group will delete a group specified by the Group name. Select Group will select all instances of the group in the Group name field.

Floorplan->Create Region...

Create Region

Creates a region for use with Place & Route. A region is a rectangle on the Region layer with string properties type and name. Regions can be of type Guide or Fence. Fence regions are hard constraints whereas Guide regions are soft constraints.

Floorplan->Placement->Place Cells...

Place

Places cells in rows using the UCLA Capo placer. Glade exports LEF and DEF from the current design and invokes Capo; on completion, Glade reads in the placed DEF.

The design must have rows for placement of cells, as defined using the Row layer, and a valid design area as defined by the boundary layer. Placement regions may exist as defined by the Region layer.

Currently only horizontal cell rows are supported for placement - this is a limitation of the Capo code. Rows can be flipped and cell orientations will obey row orientations (this is a bugfix from the distribution Capo code which assumes all rows are N orientation)

Floorplan->Placement->Unplace Cells

Unplaces all standard cells. Cells are moved to the right of the design area and have their orientation set to R0 and placement status set to unplaced.

Floorplan->Placement->Check Overlaps

Checks for any overlapping standard cells in the design, reporting their names and locations if found.

Floorplan->Route->Global Route...

Global Route

Shortcut: G. Global routes the design. The design must be a placed standard cell or block design, imported using LEF/DEF or LEF/Verilog, with a design boundary and routing layers in the technology. Routing tracks are taken from the DEF TRACKS statements.

Global routing divides the design into a grid of bins, known as gcells, and finds the gcells each net passes through, not its exact wires. Each gcell edge has a capacity: the number of routing tracks that cross it, less those blocked by existing net, pin and blockage shapes. The global router works in these steps:

The dialog has these fields:

The gcell size and the options are kept for the rest of the Glade session, and Detail Route uses them too.

A global route doesn't change the design. When it finishes, the message window reports the number of nets routed, the total overflow and the number of overflowed gcell edges, the iterations run and the time taken, and the congestion map is shown. The global route is kept for Display Globally Routed Net until the next route is run.

The congestion map draws the gcell grid, colouring each gcell edge by its utilisation (tracks used / tracks available):

ColourUtilisation
Greybelow 50%
Blue50% to 70%
Cyan70% to 85%
Green85% to 100%
Yellowexactly full
Redoverflowed by up to 20%
Magentaoverflowed by 20% to 50%
Whiteoverflowed by more than 50%

The equivalent Python command, which is written to the log when you click OK, is:

ui().globalRoute(cv, tracksPerGcell=15, iterations=30)

cv may be None for the design in the current window. tracksPerGcell sets both the gcell width and height, and iterations the rip-up and reroute iterations; the other settings are the session's ones from the dialogs. It returns False if routing could not be set up, for example if there are no routing layers.

Floorplan->Route->Global Route Options...

Global Route Options

Sets the global router's costs and limits for the rest of the Glade session. Costs are measured in gcell edges, so 1.0 is the cost of crossing one uncongested gcell edge. Defaults sets every field back to its default value.

FieldDefaultMeaning
Iterations30Most rip-up and reroute iterations. 0 keeps the pattern route.
Stop after iterations without improvement5Stop when the total overflow hasn't fallen for this many iterations.
History cost increment1.0Cost added each iteration to every overflowed gcell edge, so later routes avoid edges that keep overflowing.
Overflow penalty growth1.5Each iteration the penalty for using a full gcell edge is multiplied by this.
Bend cost0.5Cost of each bend in a route.
Via cost2.0Layer assignment: cost of each layer change, including from the pin layers.
Overflow cost100Layer assignment: cost of each track over a layer's capacity on a gcell edge.
Layer preference0.1Layer assignment: cost per layer that steers short runs to lower layers and long runs to upper layers.
Long run (gcells)8Runs at least this long prefer upper layers.
Target layers by run lengthoffLayer assignment: instead of steering short runs down and long runs up, steer each run towards a target layer: the bottom layer for runs shorter than Long run, one layer pair higher for each doubling beyond that. The middle layers then get the medium runs and only the longest reach the top, which saves vias (ISPD-18 test4: 1.7% fewer, the top layer 24% used instead of 33%). The detail route's Fast flow turns it on when it makes its own global route; tick it here when you global route first and detail route with Use current global route.
Capacity scale1.0Multiplies every gcell edge's capacity. Below 1 makes routing harder, for testing.
Route special nets with regular pinsoffRoute a net in the DEF SPECIALNETS section that also has pins in the NETS section, such as a clock with a pre-routed spine, to its NETS pins. Its SPECIALNETS pins are not routed. Power and ground nets are never routed.

Each global route wire runs in its layer's preferred direction, so there is no wrong-way cost in the global router. The detail router's wrong-way cost is in Detail Route Options.

Floorplan->Route->Display Globally Routed Net...

Display Globally Routed Net

Shortcut: Shift+G. Highlights a net's global route. Run Global Route or Detail Route first. Choose or type the Net name and click OK. The net's gnodes are drawn at the centres of their gcells, with a bar along each link from a gnode to its neighbour:

If a gcell has more than one kind of gnode, only the most important is drawn: a pin, then a Steiner point, then a bend. The number of each, the number of links, and the route's horizontal, vertical and total lengths are reported in the message window.

Highlight colour sets the colour the net is drawn in; each net keeps the colour it was drawn with, so several nets can be shown in different colours. Clear highlighted net removes them all, as Clear Highlighted Net does. A net with no global route has fewer than two pins, or was not routed, such as a power, ground or special net (see Route special nets with regular pins in Global Route Options). A net with all its pins in one gcell is shown as a single gnode.

Floorplan->Route->Clear Highlighted Net

Removes the nets shown by Display Globally Routed Net. Other highlights are kept.

Floorplan->Route->Toggle Congestion Map

Shortcut: =. Shows or hides the congestion map from the last global route. See Global Route for its colours.

Floorplan->Route->Detail Route...

Detail Route

Detail routes each net inside the gcells its global route uses (its route guides), and writes the wires and vias into the design. The global route is the one already made by Global Route, or a new one made first with the Global Route settings (see Use current global route below).

Nets are routed one at a time, shortest first. Each net's wires are added to the design straight away, so later nets route around them. A multi-pin net is grown as a tree: the unconnected pin nearest the routed part of the net is connected to it next. Routing outside the net's route guides is allowed but costs more. A connection that fails is retried in a larger area using every layer. Nets that are still incomplete are then ripped up and rerouted, along with the nets in their way. Finally, pin-clearing passes rip up the nets next to each failed pin and route the failed net first; if that leaves things worse, the earlier routing is put back. Routing keeps each layer's spacing, avoids end of line violations and lengthens pieces under the layer's minimum area; it can also keep the wider spacing of layers' spacing tables and run design rule repair passes. See Detail Route Options.

The dialog has these fields:

A progress dialog shows the current pass and how many nets are done, and the message window shows each step as it starts, including the setup before the first pass (pin access, the shapes in instances, track assignment). Clicking Cancel stops routing within a few seconds, even while threads are routing: no new net or clip is started and searches under way stop. The routing finished so far is kept and the remaining nets are counted as failed (the design-wide check at the end is skipped). When it finishes, the message window reports the nets routed, the connections that failed, the number of vias, the wire length, the retries and rip-ups, and ends with the route's total time, global and detail. With Mark unrouted pins in Detail Route Options, each unconnected pin of the failed nets gets a marker for the DRC marker browser. The congestion map of the new global route is shown as well; when the current global route is used, the message window says so and its congestion map stays.

The equivalent Python command, which is written to the log when you click OK, is:

ui().detailRoute(cv, tracksPerGcell=15, globalIterations=30, detailIterations=5, deleteExisting=False,
                 useCurrentGlobalRoute=False)

cv may be None for the design in the current window. The other settings are the session's ones from the dialogs. It returns False if routing could not be set up or was cancelled. With useCurrentGlobalRoute=True it uses the global route kept from the last ui().globalRoute (or Global Route) of cv, which must be in the current window, and ignores tracksPerGcell and globalIterations; it returns False if there is no such global route. The default, False, always global routes first, as scripts written before this argument expect.

Floorplan->Route->Detail Route Options...

Sets the detail router's costs, limits, passes and design rule handling for the rest of the Glade session. The fields are on two tabs: Routing (costs, search window, the rip-up, region and pin-clearing passes, and the nets and threads) and Design rules and reporting. Defaults sets every field back to its default value.

Routing tab

Detail Route Options, Routing tab

FieldDefaultMeaning
Costs
Wrong way cost4.0Cost multiplier for wire against a layer's preferred direction.
Via cost4.0Cost of a via, in pitches of the lower layer.
Guide cost1.0Extra cost factor for moves outside the net's global route guides.
Pin access cost4.0Cost, in pitches, of a node on the layer above another net's pin, where its via would land. 0 turns it off.
A* heuristic weight1.01 finds the cheapest route; higher is faster but may find worse routes.
Search window
Halo (pitches)10Margin around each connection's bounding box.
Retry halo (pitches)30Margin for the wider retry of a connection that failed.
Layers above terminals2Layers above the higher terminal a connection may use. The retry uses every layer.
Rip-up and reroute
Passes5Most rip-up and reroute passes after the first pass. 0 keeps the first pass.
Rip-ups per net3Most times one net may be ripped up to make room for others.
Nets ripped up per failed net8Most nets ripped up for one failed net.
Order by failure historyonTake failed nets, and the nets ripped up for them, most-failed first.
Region passes0After the pin-clearing passes, reroute square regions around the pins still failing: the nets there are cut at the region and joined again on one grid for it, and the region is kept only if it has fewer failed pins. 0 turns them off.
Region size (gcells)3A region's side in the first region pass. It grows in later passes, up to the largest size.
Largest region (gcells)7The largest a region grows to.
Pin-clearing passes
Passes3Passes for nets still failing after rip-up and reroute. 0 turns them off.
Reach (pitches)3How near a failed pin another net's routing must be for it to be ripped up.
Nets ripped up per failed net8Most nets ripped up for one failed net in the first pass.
Pin access cost20Pin access cost, in pitches, for the failed net in these passes.
Repair rounds2Rip-up and reroute rounds for nets that fail after being ripped up to clear a pin, before deciding whether to keep the result.
Nets
Threadsthe CPU's cores (ARM), or twice its cores (x64)Threads the detail route runs on, at most the CPU's hardware threads. Nets (and design rule clips) whose areas don't meet are routed at once, and the result is the same on any number of threads. The first pass, the minimum area patches, the design rule clip passes and the final check use them; the rip-up, pin-clearing and region passes still route one net or region at a time. 0 routes one net at a time throughout, as before.
Fast flow (experimental)offA faster flow for large designs, which overrides the related options:
  • The first pass routes one connection at a time on the threads, each as soon as no connection nearby is being routed, so the threads stay busy.
  • A connection that can't be routed within its window is retried crossing other nets' routing at a cost, rather than with a blocked wider search.
  • The clashes left are repaired in design rule clips where the nets negotiate, at costs rising each pass; the clips grow while minimum area violations are left, and the nets the last reroute still fails are ripped up with the nets in their way.
  • Where a cut's default via has a pad across its layer's direction, a via turned a quarter is made and used instead (named after the cut, with _FR, and written to the DEF's VIAS), and track assignment keeps room beside segment ends for wide via pads.
  • The global route steers runs to layers by their length (see Target layers by run length in Global Route Options) when the detail route makes it.
  • Searches give up after 2 million nodes or 5 seconds, and repair stops starting new clips after 15 minutes.
ISPD-18, 16 threads: test2 50 s, test3 53 s, test4 under 5 minutes (it did not finish in 2 hours before), all with no opens or shorts; test5 (Metal1 vertical) about 15 minutes, no opens or shorts, but over a thousand minimum area violations left.
Route special nets with regular pinsoffRoute a net in the DEF SPECIALNETS section that also has pins in the NETS section, such as a clock with a pre-routed spine, to its NETS pins. Its SPECIALNETS pins are not routed, and its special wiring is kept and may be used by it. Power and ground nets are never routed. Turn on the same option in Global Route Options too, or the net has no global route guides.

Design rules and reporting tab

Detail Route Options, Design rules and reporting tab

FieldDefaultMeaning
Design rules
Avoid end of line violationsonKeep out of other nets' line ends, and keep the route's own line ends clear, on layers with an end of line rule (techfile MINEOLSPACE, LEF SPACING ... ENDOFLINE).
End of line cost (pitches)32.0Cost of a move that breaks an end of line rule.
Avoid spacing table violationsoffKeep the wider spacing that layers' parallel run length spacing tables (techfile MINSPACETABLE, LEF SPACINGTABLE PARALLELRUNLENGTH) need from wide metal, including wide via pads. Moves closer than that cost more rather than being blocked, and minimum area patches keep it. Track assignment leaves out the layers whose default via pads need more than the layer spacing, since segments packed on their tracks leave other nets' vias no room; the search routes those layers. Up to about twice as slow on such designs (ISPD-18 test3: 1.8 times).
Spacing table cost (pitches)8.0Cost of a move closer to wide metal than its spacing table needs.
Repair spacing table violationsoffWith spacing table violations avoided, the design rule clip passes reroute the ones left too, as they do end of line and minimum area violations. Few are fixed (ISPD-18 test3: 897 to 836), and it can take much longer (205 s to 272 s).
Use other via orientationsonWhere the default via between two layers is blocked, or breaks an end of line or spacing table rule, on a pin or where its pads come too close to wide metal, try the other single cut vias between them with the same cut and pads no larger than the default's (for example the other pad orientations), and use the one that costs least. It costs no noticeable time.
Patch minimum areaonAfter routing, lengthen pieces under the layer's minimum area where there is room.
Design rule passes
Passes0Passes that rip up and reroute nets with design rule violations, with past violations costing more. 0 turns them off: on dense end of line designs they can take several times the rest of the route.
Nets ripped up per net8Most nets that a net's end of line violations are with, ripped up with it.
Tries per net2Times a net is put back without fewer violations before later passes leave it alone.
Violation cost (pitches)8.0Cost of routing through a past violation.
Violation cost decay0.5Each pass, past violations' weight is multiplied by this.
Check after every passoffCount violations after every pass, for the pass reports. Each check is a design-wide run.
Clip passes2After the other passes, the design is tiled with square clips, and each clip with violations is rerouted: its nets are cut at the clip and joined again, with past violations costing more, and the clip is kept only if it has no more failed pins and fewer violations. Each pass moves the clips by half a clip. On the ISPD-18 tests two passes remove about two thirds of the violations and about double the detail route's time; a third pass removes few more. With threads, clips that don't meet run at once. 0 turns them off.
Clip size (gcells)7A clip's side.
Reporting and debugging
Report failuresoffReport each failed connection and the router's progress in the message window.
List failed netsoffAfter routing, list the nets left with pins unconnected, by name, with how many of their pins, in the message window, so you can check them afterwards (for example with Select Net or Display Globally Routed Net). With Cancel, the nets not yet routed are listed too.
Mark unrouted pinsoffAt the end of the detail route, put a marker on the marker layer around each unconnected pin of the failed nets, for the DRC marker browser: their rule is Route: unrouted pin, or Route: unrouted pin (route cancelled) for a net Cancel left unfinished, and each has the net's name in its net property. The markers of an earlier route are deleted first; DRC's own markers are left.
Check for shortsoffReport wires that overlap other nets' routing. Slow.
Debug netReport each connection of the nets whose names contain this text.

Floorplan->Route->Delete Routing

Delete Routing

Deletes the wires (paths and segments) and via instances of nets at the top level of the design. A dialog asks which nets:

With Delete all the routing of special nets that are not power or ground checked (the default), a net in the DEF SPECIALNETS section that is not power or ground, such as one with USE SIGNAL, loses all its routing, its special wiring included. Power and ground nets keep their special wiring whatever the choice.

Pins and other shapes are kept. The number of objects deleted is reported in the message window.

The equivalent Python command is:

ui().deleteRouting(cv, specialToo=False, regularOfSpecialNets=False, specialSignalNets=False)

cv may be None for the design in the current window. If specialToo is True, special nets' routing is deleted as well. regularOfSpecialNets is True for the second choice in the dialog, and specialSignalNets is True for the check box. It returns the number of objects deleted.

Floorplan->Filler Cells->Add...

Add Fillers

Adds filler cells. Rows must be present in order to add filler cells. The filler cells are specified by the filler name pattern given (e.g. FILL*). The instance names of fillers are prepended by the given name prefix and a count, e.g. FILLER1234. The site name needs to be specified from the list of site names. Power Net and Ground Net are the names of the power and ground nets that the filler cells should be connected to. Fillers can be added either for the whole row, or just between cells.

Floorplan->Filler Cells->Delete...

Delete Fillers

Deletes cells matching the pattern. Note that this can be used to delete any cells matching the pattern, not just filler cells.

Floorplan->Highlight Net Types...

Highlight Net Types

Highlights DEF nets by type i.e. SIGNAL, ANALOG, CLOCK, POWER, GROUND, RESET, SCAN, TIEOFF.

Edit->Replace Views...

Replace Views

This command is now on the Edit menu. Replaces instances with masters of one view type with masters of another view type. Replacement view is the view to replace the existing master's view with. All Cells will replace all instances in the current cellview. Selected Cells will replace just the instances in the selected set.