asic unit8

Author: rejeev-cv

Post on 03-Apr-2018




0 download

Embed Size (px)


  • 7/28/2019 ASIC unit8






    Physical Design Flow


    Global Routing

    Detailed Routing

    Special Routing

    Circuit Extraction and DRC

    Seven Key Challenges of ASIC Design

    Timing-driven floorplanning andplacement design flow

    The flow consists of the following steps:

    Design entry


    Initial floorplan

    Synthesis with load constraints Timing-driven placement

    Synthesis with in-place optimization

    Detailed placement

    Figure: Physical Design Flow

    Design entry:

    The input is a logical description with no physicalinformation.


    The initial synthesis contains little or no informationon any interconnect loading.

    The output of the synthesis tool (EDIF netlist) is theinput to the floorplanner.

    Initial floorplan:

    From the initial floorplan interblock capacitances areinput to the synthesis tool as load constraints andintrablock capacitances are input as wire-load tables.

    Synthesis with load constraints:

    At this point the synthesis tool is able to resynthesizethe logic based on estimates of the interconnectcapacitance each gate is driving.

    The synthesis tool produces a forward annotation fileto constrain path delays in the placement step.

    Timing-driven placement:

    After placement using constraints from the synthesis

    tool, the location of every logic cell on the chip is fixedand accurate estimates of interconnect delay can bepassed back to the synthesis tool.

  • 7/28/2019 ASIC unit8




    Synthesis with in-place optimization (IPO):

    The synthesis tool changes the drive strength of

    gates based on the accurate interconnect delayestimates from the floorplanner without altering thenetlist structure.

    Detailed placement:

    The placement information is ready to be input tothe routing step.




    Placement Goals and Objectives

    Placement Algorithms

    Min-cut Placement

    Iterative Placement Improvement

    Simulated Annealing

    Timing-Driven Placement Methods

    A Simple Placement Example


    Placement is the problem of automatically assigningcorrect positions on the chip to predesigned cells, suchthat some cost function is optimized.

    Inputs: A set of fixedcells/modules, a netlist.

    Different design styles create different placementproblems.

    E.g., building-block, standard-cell, gate-array placement.

    Building block: The cells to be placed have arbitraryshapes.

    Standard cells are designed in such a way that powerand clock connections run horizontally through the celland other I/O leaves the cell from the top or bottomsides.

    CBIC, MGA, and FPGA architectures all have rows oflogic cells separated by the Interconnect these are row-based ASICs

    The cells are placed in rows.

    Sometimes feedthrough cells are added to ease wiring.



    Given a netlist, and fixed-shape cells (small, s tandard cell), find

    the exact location of the cells to minimize area and wire-length

    Consistent with the standard-cell design methodology

    Row-based, no hard-macros


    Usually fixed, equal height (exception: double height cells)

    Some fixed (I/O pads)

    Connected by edges or hyperedges


    Cost components: area, wire length

    Additional cost components: timing, congestion

  • 7/28/2019 ASIC unit8




    Importance of Placement

    Placement: fundamental problem in physical design


    Serious interconnect issues (delay, routability, noise)

    in deep-submicron design:

    Placement determines interconnect to the first order

    Need placement information even in early design

    stages (e.g., logic synthesis)

    Need to have a good placement solution

    Placement problem becomes significantly larger.

    VLSI Global Placement Examples

    bad placement good placement

    Figure 1 shows an example of the interconnect structurefor a CBIC.

    Interconnect runs in horizontal and vertical directions inthe channels and in the vertical direction by crossingthrough the logic cells.

    Figure (a) A two-level metal CBIC floorplan.

    Figure (b) A channel from the flexible block A.

    This channel has a channel height equal to themaximum channel density of 7 (there is room for seven

    interconnects to run horizontally in m1). Figure (c) illustrates the fact that it is possible to use

    over-the-cell (OTC) routing in areas that are not blocked.

    OTC routing is complicated by the fact that the logic cellsthemselves may contain metal on the routing layers.

    Figure 1

    Figure 2 shows the interconnect structure of a two-levelmetal MGA:

    (a) A small two-level metal gate array.

    (b) Routing in a block.

    (c) Channel routing showing channel density andchannel capacity.

    The channel height on a gate array may only beincreased in increments of a row.

    If the interconnect does not use up all of the channel, therest of the space is wasted.

    The interconnect in the channel runs in m1 in thehorizontal direction with m2 in the vertical direction.

    Figure 2

  • 7/28/2019 ASIC unit8




    Most ASICs currently use two or three levels of metal forsignal routing.

    With two layers of metal, we route within the rectangularchannels using: The first metal layer for horizontal routing, parallel to the channel


    The second metal layer for the vertical direction,

    If there is a third metal layer it will normally run in the horizontaldirection again.

    The maximum number of horizontal interconnects thatcan be placed side by side, parallel to the channel spine,is the channel capacity.

    Vertical interconnect uses feedthroughs to cross thelogic cells.

    Here are some commonly used terms with explanations:

    An unused vertical track (or just track) in a logic cell iscalled an uncommitted feedthrough.

    A vertical strip of metal that runs from the top to bottomof a cell (for double-entry cells), but has no connections

    inside the cell, is also called a feedthrough or jumper. Two connectors for the same physical net are electrically

    equivalent connectors.

    A dedicated feedthrough cell is an empty cell that canhold one or more vertical interconnects. These are usedif there are no other feedthroughs available.

    A feedthrough pin or terminal is an input or output thathas connections at both the top and bottom of thestandard cell.

    A spacer cell is used to fill space in rows so that theends of all rows in a flexible block may be aligned toconnect to power buses.

    Placement Goals and Objectives

    The goal of a placement tool is to arrange all the logiccells within the flexible blocks on a chip.

    Ideally, the objectives of the placement step are to: Guarantee the router can complete the routing step

    Minimize all the critical net delays

    Make the chip as dense as poss ible

    We may also have the following additional objectives: Minimize power d issipation

    Minimize cross talk between s ignals

    The most commonly used placement objectives are oneor more of the following: Minimize the total estimated interconnect length

    Meet the timing requirements for critical nets

    Minimize the interconnect congestion

    Placement Algorithms

    What does a placement algorithm try tooptimize?

    the total area,

    the total wire length,

    the number of horizontal/vertical wire segments

    crossing a line.


    the placement should be routable (no cell overlaps;no density overflow),

    timing constraints are met (some wires should alwaysbe shorter than a given length).

    Popular placement algorithms are:Constructive algorithms: once the position of a cell

    is fixed, it is not modified anymore. Cluster growth, min cut, etc.

    Iterative algorithms: intermediate placements aremodified in an attempt to improve the cost function.

    Force-directed method, etc.

    Nondeterministic approaches: Simulatedannealing, genetic algorithm, etc.

    Most approaches combine multiple elements: Constructive algorithms are used to obtain an initial

    placement. The initial placement is followed by an iterative

    improvement phase. The results can further be improved by simulated


    A constructive placement method uses a set of rulesto arrive at a constructed placement.

    The most commonly used methods are variations onthe min-cut algorithm.

    The other commonly used constructive placementalgorithm is the eigen value method.

    As in system partitioning, placement usually startswith a constructed solution and then improves itusing an iterative algorithm.

    In most tools we can specify the locations andrelative placements of certain critical logic cells asseed placements.

  • 7/28/2019 ASIC unit8




    Min-cut Placement

    The min-cut placement method uses successiveapplication of partitioning.

    1. Cut the placement area into two pieces.2. Swap the logic cells to minimize the cut cost.

    3. Repeat the process from step 1, cutting smallerpieces until all the logic cells are placed.

    Usually we divide the placement area into bins.

    The size of a bin can vary, from a bin size equal to thebase cell (for a gate array) to a bin size that would holdseveral logic cells.

    We can start with a large bin size, to get a roughplacement, and then reduce the bin size to get a finalplacement.

    Basic idea is to split the circuit into two sub circuits.

    The recursive bipartitioning of a circuit leading to min-cutplacement.

    FIGURE 3 shows the Min-cut placement.(a) Divide the chip into bins using a grid.

    (b) Merge all connections to the center of each bin.

    (c) Make a cut and swap logic cells between bins tominimize the cost of the cut.

    (d) Take the cut pieces and throw out all the edges thatare not inside the piece.

    (e) Repeat the process with a new cut and continue untilwe reach the individual bins.

    Figure 3

    Iterative Placement Improvement

    An iterative placement improvement algorithm takes anexisting placement and tries to improve it by moving thelogic cells.

    There are two parts to the algorithm: The selection criteria that decides which logic cells to try

    moving. The measurement criteria that decides whether to move

    the selected cells.

    There are several interchange or iterative exchangemethods that differ in their selection and measurementcriteria: pairwise interchange, force-directed interchange, force-directed relaxation, force-directed pairwise relaxation.

    All of these methods usually consider only pairs of logiccells to be exchanged.

    A source logic cell is picked for trial exchange with adestination logic cell.

    The most widely used methods use group migration,especially the Kernighan Lin algorithm.

    The pairwise-interchange algorithm is similar to theinterchange algorithm used for iterative improvement inthe system partitioning step:

    1. Select the source logic cell at random.

    2. Try all the other logic cells in turn as the destinationlogic cell.

    3. Use any of the measurement methods discussed todecide on whether to accept the interchange.

    4. The process repeats from step 1, selecting each logiccell in turn as a source logic cell.

    Figure (a) and (b) show how we can extend pairwiseinterchange to swap more than two logic cells at a time.

    If we swap X logic cells at a time and find a locallyoptimum solution, we say that solution is X-optimum.

    Neighborhood exchange algorithm is a modification topairwise interchange that considers only destination logiccells in a neighborhood cells within a certain distance, e,of the source logic cell.

    Limiting the search area for the destination logic cell tothe e -neighborhood reduces the search time.

    Neighborhoods are also used in some of the force-directed placement methods.

  • 7/28/2019 ASIC unit8




    Imagine identical springs connecting all the logic cells wewish to place.

    Number of springs is equal to the number of connectionsbetween logic cells.

    Effect of the springs is to pull connected logic cellstogether.

    More highly connected the logic cells, the stronger thepull of the springs.

    Force on a logic cell i due to logic cell j is given byHookes law, which says the force of a spring isproportional to its extension:

    Fij = - cij xij The vector component xij is directed from the center of

    logic cell i to the center of logic cell j.

    The vector magnitude is calculated as either theEuclidean or Manhattan distance between the logic cellcenters.

    The cij form the connectivity or cost matrix (the matrixelement cij is the number of connections between logiccell i and logic cell j).

    If we want, we can also weight the cij to denote criticalconnections.

    Figure 4 illustrates the force-directed placement

    algorithm. Nets such as clock nets, power nets, and global reset

    lines have a huge number of terminals.

    The force-directed placement algorithms usually makespecial allowances for these situations to prevent thelargest nets from snapping all the logic cells together.

    FIGURE 4: Force-directed placement.

    (a) A network with nine logic cells.

    (b) We make a grid (one logic cell per bin).

    (c) Forces are calculated as if springs were attached to thecenters of each logic cell for each connection.

    The two nets connecting logic cells A and I correspondto two springs.

    (d) The forces are proportional to the spring extensions.

    Figure 5 illustrates the different kinds of force-directedplacement algorithms.

    The force-directed interchange algorithm uses the forcevector to select a pair of logic cells to swap.

    In force-directed relaxation a chain of logic cells ismoved.

    The force-directed pairwise relaxation algorithm swapsone pair of logic cells at a time.

    We get force-directed solution when we minimize theenergy of the system, corresponding to minimizing thesum of the squares of the distances separating logiccells.

    Force-directed placement algorithms thus also use aquadratic cost function.

    FIGURE 5: Force-directed iterative placementimprovement.

    (a) Force-directed interchange.

    (b) Force-directed relaxation.

    (c) Force-directed pairwise relaxation.

  • 7/28/2019 ASIC unit8




    Timing-Driven Placement Methods

    Minimizing delay is becoming more and more importantas a placement objective.

    There are two main approaches: net based

    path based

    We can use net weights in our algorithms.

    The problem is to calculate the weights.

    One method finds the n most critical paths (using atiming-analysis engine, possibly in the synthesis tool).

    The net weights might then be the number of times eachnet appears in this list.

    Another method to find the net weights uses the zero-slack algorithm.

    Figure 6 (a) shows a circuit with primary inputs at whichwe know the arrival times (actual times) of each signal.

    We also know the required times for the primary outputsthe points in time at which we want the signals to be

    valid. We can work forward from the primary inputs and

    backward from the primary outputs to determine arrivaland required times at each input pin for each net.

    The difference between the required and arrival times ateach input pin is the slack time (the time we have tospare).

    The zero-slack algorithm adds delay to each net until theslacks are zero, as shown in Figure 6 (b).

    The net delays can then be converted to weights orconstraints in the placement.

    FIGURE 6: The zero-slack algorithm.(a) The circuit with no net delays.

    FIGURE 6: The zero-slack algorithm.(b) The zero-slack algorithm adds net delays (at theoutputs of each gate, equivalent to increasing the gatedelay) to reduce the slack times to zero.


    A Simple Placement Example

    Figure 7 shows an example network and placements toillustrate the measures for interconnect length andinterconnect congestion.

    Figure (b) and (c) illustrate the meaning of total routinglength, the maximum cut line in the x -direction, themaximum cut line in the y -direction, and the maximumdensity.

    In this example we have assumed that the logic cells areall the same size, connections can be made to terminalson any side, and the routing channels between eachadjacent logic cell have a capacity of 2.

    Figure (d) shows what the completed layout.


  • 7/28/2019 ASIC unit8





    Placement follows the floorplanning step and is moreautomated.

    It consists of organizing an array of logic cells within aflexible block.

    The criterion for optimization may be minimuminterconnect area, minimum total interconnect length, orperformance.

    Because interconnect delay in a submicron CMOSprocess dominates logic-cell delay, planning ofinterconnect will become more and more important.

    Instead of completing synthesis before startingfloorplanning and placement, we have to use synthesisand floorplanning/placement tools together to achieve anaccurate estimate of timing.


    Once the designer has floorplanned a chip and the logiccells within the flexible blocks have been placed, it istime to make the connections by routing the chip.

    Given a placement, and a fixed number of metal layers,find a valid pattern of horizontal and vertical wires thatconnect the terminals of the nets.

    This is still a hard problem that is made easier bydividing it into smaller problems.

    Routing is usually split into global routing followed by

    detailed routing.

    Global Routing



    Global Routing Goals & Objectives

    Measurement of Interconnect Delay

    Global Routing Methods

    Global Routing Between Blocks

    Global Routing Inside Flexible Blocks


    Introduction The details of global routing differ slightly between cell-

    based ASICs, gate arrays, and FPGAs, but the principlesare the same in each case.

    A global router does not make any connections, it justplans them.

    We typically global route the whole chip (or large piecesif it is a large chip) before detail routing the whole chip(or the pieces).

    There are two types of areas to global route:

    inside the flexible blocks,

    between blocks.

  • 7/28/2019 ASIC unit8




    The input to the global router is:

    a floorplan that includes the locations of all the fixedand flexible blocks,

    the placement information for flexible blocks and the

    locations of all the logic cells.

    Floorplanning and placement both assume thatinterconnect may be put anywhere on a rectangular grid.

    Since at this point nets have not been assigned to thechannels, but the global router must use the wiringchannels and find the actual path.

    Global router find a path that minimizes delay betweentwo terminals this is not necessarily the same as findingthe shortest total path length for a set of terminals.

    Global Routing Goals & Objectives

    The goal of global routing is to

    Provide complete instructions to the detailed router onwhere to route every net.

    The objectives of global routing are one or moreof the following:

    Minimize the total interconnect length.

    Maximize the probability that the detailed router cancomplete the routing.

    Minimize the critical path delay.

    Measurement of Interconnect Delay

    Figure 1: Measuring the delay of a net.

    (a) A simple circuit with an inverter A driving a net with afanout of two.

    Voltages V1, V2, V3, and V4 are the voltages atintermediate points along the net.

    (b) The layout showing the net segments (pieces of

    interconnect).(c) The RC model with each segment replaced by acapacitance and resistance.

    The ideal switch and pull-down resistance Rpd model theinverter A.

    Figure 1: Measuring the delay of a net.

    Global Routing Methods

    Global routing cannot use the interconnect-lengthapproximations, such as the half-perimeter measure,that were used in placement.

    We need actual path and not an approximation to thepath length.

    Many of the methods are based on the solutions to thetree on a graph problem.

    One approach to global routing takes each net in turnand calculates the shortest path using tree on graphalgorithms with the added restriction of using theavailable channels.

    This process is known as sequential routing.

    As a sequential routing algorithm proceeds, somechannels will become more congested since they holdmore interconnects than others.

    In the case of FPGAs and channeled gate arrays, thechannels have a fixed channel capacity and can onlyhold a certain number of interconnects.

    Two different ways that a global router handles thisproblem is:Using order-independent routing, a global router proceeds

    by routing each net, ignoring how crowded the channelsare.

    Whether a particular net is processed first or last does notmatter, the channel assignment will be the same.

    After all the interconnects are assigned to channels, theglobal router returns to those channels that are the mostcrowded and reassigns some interconnects to other, lesscrowded, channels.

  • 7/28/2019 ASIC unit8




    Alternatively, a global router can consider the number ofinterconnects already placed in various channels as itproceeds.

    In this case the global routing is order dependent therouting is still sequential, but now the order of processingthe nets will affect the results.

    Iterative improvement or simulated annealing may beapplied to the solutions found from both order-dependent and order-independent algorithms.

    This is implemented in the same way as for systempartitioning and placement.

    A constructed solution is successively changed, oneinterconnect path at a time, in a series of randommoves.

    In contrast to sequential global-routing methods, whichhandle nets one at a time, hierarchical routing handlesall nets at a particular level at once.

    Instead of handling all the nets on the chip at the sametime, the chip area is divided into levels of hierarchy.

    Considering only one level of hierarchy at a time the sizeof the problem is reduced at each level.

    There are two ways to traverse the levels of hierarchy:

    Starting at the whole chip, or highest level, and proceedingdown to the logic cells is the top-down approach.

    The bottom-up approach starts at the lowest level ofhierarchy and globally routes the smallest areas first.

    Global Routing Between Blocks

    Figure 2 illustrates the global-routing problem for a cell-based ASIC.

    Each edge in the channel-intersection graph in Figure (c)represents a channel.

    The global router is restricted to using these channels.

    Each channel corresponds to an edge on a graph whoseweight corresponds to the channel length.

    Router plans a path for each interconnect using this graph.

    FIGURE 2: (a) A cell-based ASIC with numbered channels

    (b) The channels form the edges of a graph.

    (c) The channel-intersection graph.

    Figure 2

    Figure 3 shows an example of global routing for a netwith five terminals, labeled A1 through F1, for the cell-based ASIC shown in Figure 2.

    If a designer need minimum total interconnect pathlength as an objective, the global router finds theminimum-length tree shown in Figure (b).

    This tree determines the channels interconnects will use

    For example, the shortest connection from A1 to B1uses channels 2, 1, and 5 (in that order).

    This is the information the global router passes to thedetailed router.

    Figure (c) shows that minimizing the total path lengthmay not correspond to minimizing the path delaybetween two points.

    FIGURE 3: Finding paths in global routing.

    (a) A cell-based ASIC (from Figure 2) showing a single netwith a fanout of four (five terminals).

    (b) The terminals are projected to the center of the nearestchannel, forming a graph.

    (c) The minimum-length tree does not necessarily correspondto minimum delay.

  • 7/28/2019 ASIC unit8




    Global Routing Inside FlexibleBlocks

    Figure 4 (a) shows the routing resources on a sea-of-

    gates or channelless gate array. The gate array base cells are arranged in 36 blocks,

    each block containing an array of 8-by-16 gate-arraybase cells, making a total of 4068 base cells.

    The horizontal interconnect resources are the routingchannels that are formed from unused rows of the gate-array base cells, as shown in Figure (b) and (c).

    The vertical resources are feedthroughs.

    For example, the logic cell shown in Figure (d) is aninverter that contains two types of feedthrough.

    FIGURE 4: Gate-array global routing.(a)A small gate array.(b)An enlarged view of the routing. The top channel uses three

    rows of gate-array base cells, the other channels use only one.(c) A further enlarged view showing how the routing in the channels

    connects to the logic cells.

    FIGURE 4: Gate-array global routing.(d) One of the logic cells, an inverter.(e) There are seven horizontal wiring tracks available in one

    row of gate-array base cells the channel capacity is thus 7.

    The inverter logic cell uses a single gate-array base cellwith terminals (or connectors) located at the top andbottom of the logic cell.

    The inverter input pin has two electrically equivalentterminals that the global router can use as afeedthrough.

    Output of inverter is connected to only one terminal.

    Remaining vertical track is unused by the inverter logiccell, this track forms an uncommitted feedthrough.

    The terms landing pad (because we say that we drop avia to a landing pad), pick-up point, connector, terminal,pin, or port used for the connection to a logic cell.

    Figure 5 (a) shows a routing bin that is 2-by-4 gate-array base cells.

    Logic cells occupy the lower half of the routing bin.

    Upper half of the routing bin is the channel area,reserved for wiring.

    Global router calculates the edge capacities for thisrouting bin, including the vertical feedthroughs.

    Global router then determines the shortest path foreach net considering these edge capacities.

    The path, described by a series of adjacent routingbins, is passed to the detailed router.

    FIGURE 5: Global routing a gate array.

    (a) A single global-routing cell (GRC or routing bin)containing 2-by-4 gate-array base cells.

    Maximum horizontal track capacity is 14, themaximum vertical track capacity is 12.

    Routing bin labeled C3 contains three logic cells, twoof which have feedthroughs marked 'f'.

    This results in the edge capacities shown.

    (b) A view of the top left-hand corner of the gate array

    showing 28 routing bins.

    Global router uses the edge capacities to find a

    sequence of routing bins to connect the nets.

  • 7/28/2019 ASIC unit8




    Figure 5


    After global routing is complete it is possible to accuratelypredict what the length of each interconnect in every net

    will be after detailed routing (probably to within 5 %). Global router can give us not just an estimate of the total

    net length, but the resistance and capacitance of eachpath in each net. This RC information is used to calculate net delays.

    Back-annotate this net delay information to the synthesistool for in-place optimization or to a timing verifier tomake sure there are no timing surprises.

    Differences in timing predictions at this point arise due tothe different ways in which the placement algorithmsestimate the paths and the way the global router actuallybuilds the paths.

    Detailed Routing



    Detailed Routing Goals & Objectives

    Measurement of Channel Density


    Left-Edge Algorithm

    Constraints and Routing Graphs

    Area-Routing Algorithms

    Timing-Driven Detailed Routing


    The global routing step determines the channels to beused for each interconnect.

    Using this information the detailed router decides theexact location and layers for each interconnect.

    Figure 1(a) shows typical metal rules.

    These rules determine the m1 routing pitch (track pitch,track spacing, or just pitch).

    We can set the m1 pitch to one of three values: via-to-via ( VTV ) pitch (or spacing),

    via-to-line ( VTL or line-to-via ) pitch, or

    line-to-line ( LTL ) pitch.

    FIGURE 1: The metal routing pitch.

    (a) An example of l -based metal design rules for m1and via1 (m1/m2 via).

    (b) Via-to-via pitch for adjacent vias.

    (c) Via-to-line (or line-to-via) pitch for nonadjacent vias.

    (d) Line-to-line pitch with no vias.

  • 7/28/2019 ASIC unit8




    The same choices apply to the m2 and other metallayers if they are present.

    Via-to-via spacing allows the router to place vias

    adjacent to each other. Via-to-line spacing is hard to use in practice because it

    restricts the router to nonadjacent vias.

    Using line-to-line spacing prevents the router fromplacing a via at all without using jogs and is rarely used.

    Via-to-via spacing is the easiest for a router to use andthe most common.

    Using either via-to-line or via-to-via spacing means thatthe routing pitch is larger than the minimum metal pitch.

    In a two-level metal CMOS ASIC technology we completethe wiring using the two different metal layers for thehorizontal and vertical directions, one layer for eachdirection, this is Manhattan routing,

    For example: if terminals are on the m2 layer, then weroute the horizontal branches in a channel using m2 andthe vertical trunks using m1.

    Figure 2 shows that, although we may choose a preferreddirection for each metal layer, this may lead to problemsin cases that have both horizontal and vertical channels.

    In these cases we define a preferred metal layer in thedirection of the channel spine.

    In Figure 2, logic cell connectors are on m2, any verticalchannel has to use vias at every logic cell location.

    Figure 2

    By changing the orientation of the metal directions invertical channels, we can avoid this, and instead weonly need to place vias at the intersection of horizontaland vertical channels.

    FIGURE 2: An expanded view of part of a cell-based ASIC:

    (a) Both channel 4 and channel 5 use m1 in the horizontaldirection and m2 in the vertical direction.

    If the logic cell connectors are on m2 this requires vias to be

    placed at every logic cell connector in channel 4.(b) Channel 4 and 5 are routed with m1 along the direction ofthe channel spine (the long direction of the channel).

    Now vias are required only for nets 1 and 2, at theintersection of the channels.

    Figure 3 illustrates some terms used in the detailedrouting of a channel.

    FIGURE 3: Terms used in channel routing.

    (a) A channel with four horizontal tracks.

    (b) An expanded view of the left-hand portion of the channelshowing (approximately to scale) how the m1 and m2 layersconnect to the logic cells on either side of the channel.

    (c) The construction of a via1 (m1/m2 via).

    The channel spine in Figure is horizontal with terminalsat the top and the bottom, but a channel can also bevertical.

    In either case terminals are spaced along the longestedges of the channel at given, fixed locations.

    Figure 3

  • 7/28/2019 ASIC unit8




    Detailed Routing Goals & Objectives

    The goal of detailed routing is to complete all theconnections between logic cells.

    The objective is to minimize one or more of the following: The total interconnect length and area.

    The number of layer changes that the connections have to make.

    The delay of cr itical paths.

    Minimizing the # of layer changes corresponds tominimizing the # of vias that add parasitic resistance andcapacitance to a connection.

    In cell-based ASIC or sea-of-gates array, it is possible toincrease the channel size and try the routing steps again

    A channeled GA or FPGA has fixed routing resourcesand in these cases we must start all over again withfloorplanning and placement, or use a larger chip.

    Measurement of Channel Density

    We can describe a channel-routing problem byspecifying two lists of nets: One for the top edge of the channel,

    One for the bottom edge.

    The position of the net number in the list gives thecolumn position.

    The net number zero represents a vacant or unusedterminal.

    Figure 6 shows a channel with the numbered terminalsto be connected along the top and the bottom of thechannel.

    The number of nets that cross a line drawn verticallyanywhere in a channel is called local density.

    Figure 6 has a channel density of 4.

    Channel density tells a router the absolute fewestnumber of horizontal interconnects that it needs at thepoint where the local density is highest.

    In two-level routing (all the horizontal interconnects runon one routing layer) the channel density determines theminimum height of the channel.

    The channel capacity is the maximum number ofinterconnects that a channel can hold.

    If the channel density is greater than the channelcapacity, that channel definitely cannot be routed.

    FIGURE 6: The definitions of local channel density andglobal channel density.

    Lines represent the m1 and m2 interconnect in thechannel to simplify the drawing.

    Routing Algorithms

    The restricted channel-routing problem limits each net ina channel to use only one horizontal segment.

    The channel router uses only one trunk for each net.

    This restriction has the effect of minimizing the numberof connections between the routing layers.

    This is equivalent to minimizing the number of vias usedby the channel router in a two-layer metal technology.

    Minimizing the number of vias is an important objectivein routing a channel, but it is not always practical.

    Sometimes constraints will force a channel router to usejogs or other methods to complete the routing.

    Left-Edge Algorithm

    The LEA applies to two-layer channel routing, using onelayer for the trunks and the other layer for the branches.

    The LEA proceeds as follows:

    1. Sort the nets according to the leftmost edges of thenets horizontal segment.

    2. Assign the first net on the list to the first free track.

    3. Assign the next net on the list, which will fit, to the track.

    4. Repeat this process from step 3 until no more nets willfit in the current track.

    5. Repeat steps 2 - 4 until all nets have been assigned totracks.

    6. Connect the net segments to the top and bottom of the


  • 7/28/2019 ASIC unit8




    FIGURE 7: Example illustrating the Left-edge algorithm.(a) Sorted list of segments.(b) Assignment to tracks.(c) Completed channel route.

    The algorithm works as long as none of the branchestouch which may occur if there are terminals in the samecolumn belonging to different nets.

    In this situation we have to make sure that the trunk thatconnects to the top of the channel is placed above thelower trunk.

    Otherwise two branches will overlap and short the netstogether.

    Constraints and Routing Graphs

    Two terminals that are in the same column in a channelcreate a vertical constraint.

    The terminal at the top of the column imposes a verticalconstraint on the lower terminal.

    Draw a graph showing the vertical constraints imposedby terminals.

    The nodes in a vertical-constraint graph represent

    terminals. A vertical constraint between two terminals is shown by

    an edge of the graph connecting the two terminals.

    A graph that contains information in the direction of anedge is a directed graph.

    The arrow on the graph edge shows the direction of theconstraint pointing to the lower terminal, which isconstrained.

    FIGURE 8: Routing graphs:

    (a) Channel with a global density of 4.

    (b) The vertical constraint graph. If two nets occupy the same column, the net at the top of the

    channel imposes a vertical constraint on the net at the bottom.

    For example, net 2 imposes a vertical constra int on net 4.

    Thus the interconnect for net 4 must use a track above net 2.

    (c) Horizontal-constraint graph. If the segments of two nets overlap, they are connected in the

    horizontal-constraint graph.

    This graph determines the global channel densi ty.

    FIGURE 8: Routing graphs.

    We can also define a horizontal constraint and acorresponding horizontal-constraint graph.

    If the trunk for net 1 overlaps the trunk of net 2, thenthere is a horizontal constraint between net 1 and net 2.

    Unlike a vertical constraint, a horizontal constraint hasno direction.

    Figure (c) shows an example of a horizontal constraintgraph and shows a group of 4 terminals (numbered 3, 5,6, and 7) that must all overlap.

    Since this is the largest such group, the global channeldensity is 4.

    If there are no vertical constraints at all in a channel, wecan guarantee that the LEA will find the minimumnumber of routing tracks.

  • 7/28/2019 ASIC unit8




    There is also an arrangement of vertical constraints thatnone of the algorithms based on the LEA can cope with.

    In Figure 9 (a) net 1 is above net 2 in the first column of

    the channel. Thus net 1 imposes a vertical constraint on net 2.

    Net 2 is above net 1 in the last column of the channel.

    Then net 2 also imposes a vertical constraint on net 1.

    It is impossible to route this arrangement using tworouting layers with the restriction of using only one trunkfor each net.

    If we construct the vertical-constraint graph for thissituation, shown in Figure (b), there is a loop or cyclebetween nets 1 and 2.

    If there is any such vertical-constraint cycle (or cyclicconstraint) between two or more nets, the LEA will fail.

    A dogleg router removes the restriction that each netcan use only one track or trunk.

    Figure (c) shows how adding a dogleg permits a channelwith a cyclic constraint to be routed.

    The addition of a dogleg, an extra trunk, in the wiring of anet can resolve cyclic vertical constraints.

    Figure 9

    Area-Routing Algorithms

    There are many algorithms used for the detailed routingof general-shaped areas.

    The first group we shall cover and the earliest to be usedhistorically are the grid-expansion or maze-runningalgorithms.

    A second group of methods, which are more efficient,are the line-search algorithms.

    Figure 10 illustrates the Lee maze-running algorithm.

    The goal is to find a path from X to Y i.e., from the startto the finish avoiding any obstacles.

    The algorithm is often called wave propagation becauseit sends out waves, which spread out like those createdby dropping a stone into a pond.

    FIGURE 10: The Lee maze-running algorithm.

    The algorithm finds a path from source (X) to target (Y)by emitting a wave from both the source and the targetat the same time.

    Successive outward moves are marked in each bin.

    Once the target is reached, the path is found bybacktracking (if there is a choice of bins with equallabeled values, we choose the bin that avoids changingdirection).

    The original form of the Lee algorithm uses a singlewave.

    Algorithms that use lines rather than waves to search forconnections are more efficient than algorithms based onthe Lee algorithm.

    Figure 11 illustrates the Hightower algorithm a line-searchalgorithm (or line-probe algorithm):

    1. Extend lines from both the source and target towardeach other.

    2. When an extended line, known as an escape line,meets an obstacle, choose a point on the escape linefrom which to project another escape line at right anglesto the old one.

    This point is the escape point.

    3. Place an escape point on the line so that the nextescape line just misses the edge of the obstacle.

    Escape lines emanating from the source and targetintersect to form the path.

  • 7/28/2019 ASIC unit8




    FIGURE 11: Hightower area-routing algorithm.

    FIGURE 11: Hightower area-routing algorithm.

    (a) Escape lines are constructed from source (X) and

    target (Y) toward each other until they hit obstacles.(b) An escape point is found on the escape line so thatthe next escape line perpendicular to the original missesthe next obstacle.

    The path is complete when escape lines from sourceand target meet.

    The Hightower algorithm is faster and requires lessmemory than methods based on the Lee algorithm.

    Figure 12 shows an example of three-layer channelrouting.

    In this diagram the m2 and m3 routing pitch is set totwice the m1 routing pitch.

    Routing density can be increased further if all the routingpitches can be made equal a difficult process challenge.

    With three or more levels of metal routing it is possible toreduce the channel height in a row-based ASIC to zero.

    All of the interconnect is then completed over the cell.

    If all of the channels are eliminated, the core area (logiccells plus routing) is determined solely by the logic-cellarea.

    FIGURE 12: Three-level channel routing.

    Timing-Driven Detailed Routing

    In detailed routing the global router has already set thepath the interconnect will follow.

    At this point little can be done to improve timing exceptto reduce the number of vias, alter the interconnect widthto optimize delay, and minimize overlap capacitance.

    The gains here are relatively small, but for very longbranching nets even small gains may be important.

    For high-frequency clock nets it may be important toshape and chamfer (round) the interconnect to matchimpedances at branches and control reflections atcorners.


    Final Routing Steps

    Special Routing

    Clock Routing

    Power Routing

    Circuit Extraction and DRC

    SPF, RSPF, and DSPF

    Design Checks

  • 7/28/2019 ASIC unit8




    Final Routing Steps

    If the algorithms to estimate congestion in thefloorplanning tool accurately perfectly reflected the

    algorithms used by the global router and detailed router,routing completion should be guaranteed.

    Often, the detailed router will not be able to completelyroute all the nets.

    These problematical nets are known as unroutes.

    Routers handle this situation in one of two ways:

    The first method leaves the problematical netsunconnected.

    The second method completes all interconnects anywaybut with some design-rule violations.

    If there are many unroutes the designer needs to returnto the floorplanner and change channel sizes (for acell-based ASIC) or increase the base-array size (for aGA).

    Returning to the global router and changing bin sizesor adjusting the algorithms may also help.

    If some difficult nets remain to be routed, some toolsallow the designer to perform hand edits using a rip-upand reroute router.

    This capability also permits engineering change orders(ECO) corresponding to the little yellow wires on aPCB.

    Last steps in routing is via removal the detailed routertries to eliminate any vias by changing layers or makingother modifications to the completed routing.

    Vias can contribute a significant amount to theinterconnect resistance.

    Routing compaction can be performed as the final step.

    The routing of nets that require special attention,clock and power nets for example, is normally donebefore detailed routing of signal nets.

    The architecture and structure of these nets isperformed as part of floorplanning, but the sizingand topology of these nets is finalized as part of therouting step.

    Clock Routing and Power Routing are considerednext.

    Special Routing

    Clock Routing Gate arrays normally use a clock spine (a regular grid),

    eliminating the need for special routing.

    Clock distribution grid is designed at the same time asthe GA base to ensure a minimum clock skew andminimum clock latency given power dissipation and clockbuffer area limitations.

    Cell-based ASICs may use either a clock spine, a clocktree, or a hybrid approach.

    Figure 1 shows how a clock router may minimize clockskew in a clock spine by making the path lengths, andthus net delays, to every leaf node equal using jogs inthe interconnect paths if necessary.

    FIGURE 1: Clock routing:(a) A clock network for the cell-based ASIC.(b) Equalizing the interconnect segments between CLKand all destinations (by including jogs if necessary)minimizes clock skew.

  • 7/28/2019 ASIC unit8




    More sophisticated clock routers perform clock-treesynthesis and clock-buffer insertion.

    Sophisticated clock routers perform clock-tree synthesisand clock-buffer insertion (equalizing the delay to theleaf nodes by balancing interconnect delays and bufferdelays).

    Clock tree may contain multiply-driven nodes.

    The sizes of the clock buses depend on the current theymust carry.

    Clock skew is induced by hot-electron wearout.

    Another factor contributing to unpredictable clock skew ischanges in clock-buffer delays with variations in power-

    supply voltage due to data-dependent activity. This activity-induced clock skew can easily be larger

    than the skew achievable using a clock router.

    Power buses supplying the buffers driving the clockspine carry direct current (unidirectional current or DC),but the clock spine itself carries alternating current(bidirectional current or AC).

    Difference between electromigration failure rates due toAC and DC leads to different rules for sizing clock buses.

    Power Routing

    Each of the power buses has to be sized according tothe current it will carry.

    Too much current in a power bus can lead to a failurethrough a mechanism known as electro-migration.

    Power-bus widths can be estimated automatically fromlibrary information, from a separate power simulationtool, or by entering the power-bus widths to the routing

    software by hand. Many routers use a default power-bus width so that it is

    quite easy to complete routing of an ASIC without evenknowing about this problem.

    Some CMOS processes have maximum metal-widthrules (or fat-metal rules).

    Because stress can cause large metal areas to lift.

    A solution to this problem is to place slots in the widemetal lines.

    These rules are dependent on the ASIC vendors level ofexperience.

    To determine the power-bus widths we need todetermine the bus currents.

    Largest problem is emulating the systems operatingconditions.

    Gate arrays normally use a regular power grid as part ofthe gate-array base.

    Resistance of the power grid is extracted and simulatedwith SPICE during the base-array design to model theeffects of IR drops under worst-case conditions.

    Standard cells are constructed in a similar fashion togate-array cells, with power buses running horizontally inm1 at the top and bottom of each cell.

    A row of standard cells uses end-cap cells that connectto VDD & VSS power buses placed by the power router.

    Power routing of cell-based ASICs may include theoption to include vertical m2 straps at a specifiedintervals.

    Alternatively the number of standard cells that can beplaced in a row may be limited during placement.

    The power router forms an interdigitated comb structure,minimizing the number of times a VDD or VSS powerbus needs to change layers.

    This is achieved by routing with a routing bias onpreferred layers.

    Circuit Extraction and DRC

    After detailed routing is complete, the exact length andposition of each interconnect for every net is known.

    Now the parasitic capacitance and resistance associatedwith each interconnect, via, and contact can becalculated.

    This data is generated by a circuit-extraction tool in oneof the formats described next.

    It is important to extract the parasitic values that will beon the silicon wafer.

    The mask data or CIF widths and dimensions that aredrawn in the logic cells are not necessarily the same asthe final silicon dimensions.

  • 7/28/2019 ASIC unit8




    SPF, RSPF, and DSPF

    The standard parasitic format (SPF), describesinterconnect delay and loading due to parasitic

    resistance and capacitance. There are three different forms of SPF:

    Two of them (regular SPF and reduced SPF) contain thesame information, but in different formats, and model thebehavior of interconnect;

    Third form of SPF (detailed SPF) describes the actualparasitic resistance and capacitance components of anet.

    Figure next shows the different types of simplifiedmodels that regular and reduced SPF support.

    FIGURE : The regular and reduced standard parasiticformat (SPF) models for interconnect.

    (a) An example of an interconnect network with fanout.

    The driving-point admittance of the interconnect networkis Y(s).

    (b) The SPF model of the interconnect.

    (c) The lumped-capacitance interconnect model.

    (d) The lumped-RC interconnect model.

    (e) The PI segment interconnect model.

    The load at the output of gate A is represented by one ofthree models: lumped-C, lumped-RC, or PI segment.

    The pin-to-pin delays are modeled by RC delays.

    The key features of regular and reduced SPF are as


    The loading effect of a net as seen by the driving gateis represented by choosing one of three different RCnetworks:

    lumped-C, lumped-RC, or PI segment.

    The pin-to-pin delays of each path in the net aremodeled by a simple RC delay (one for each path).This can be the Elmore constant for each path, but it

    need not be. Regular SPF file for just one net that uses the PI

    segment model shown in Figure (e).

    Reduced SPF (RSPF) contains the same information

    as regular SPF, but uses the SPICE format.

    The detailed SPF (DSPF) shows the resistance andcapacitance of each segment in a net, again in a SPICEformat.

    There are no models or assumptions on calculating thenet delays in this format.

    Here is an example DSPF file that describes theinterconnect shown in Figure (a).

    Figure (b) illustrates the meanings of the DSPF terms: Instance PinName,





    Since the DSPF represents every interconnect segment,DSPF files can be very large in size (hundreds of MB).

    FIGURE: The detailed standard parasitic format (DSPF) forinterconnect representation.

    (a) An example network with two m2 paths connected to alogic cell, INV1. The grid shows the coordinates.

    (b) The equivalent DSPF circuit corresponding to the DSPF

    file in the text.

  • 7/28/2019 ASIC unit8




    Design Checks

    ASIC designers perform two major checks beforefabrication: The first check is a design-rule check (DRC).

    The other check is a layout versus schematic (LVS).

    DRC ensure that nothing has gone wrong in the processof assembling the logic cells and routing.

    The DRC may be performed at two levels.

    Detailed router works with logic-cell phantoms, the firstlevel of DRC is a phantom-level DRC, which checks forshorts, spacing violations, or other design-rule problemsbetween logic cells.

    This is principally a check of the detailed router.

    If we have access to the real library-cell layouts, we caninstantiate the phantom cells and perform a second-levelDRC at the transistor level.

    This is principally a check of the correctness of the

    library cells. Cadence Dracula software is one de facto standard in

    this area, and you will often hear reference to a Draculadeck that consists of the Dracula code describing anASIC vendors design rules.

    Sometimes ASIC vendors will give their Dracula decks tocustomers so that the customers can perform the DRCsthemselves.

    LVS check to ensure that what is about to be committedto silicon is what is really wanted.

    An electrical schematic is extracted from the physicallayout and compared to the netlist.

    This closes a loop between the logical and physicaldesign processes,ensures that both are the same.

    The first problem with an LVS check is that thetransistor-level netlist for a large ASIC forms an

    enormous graph.

    LVS software essentially has to match this graphagainst a reference graph that describes the design.

    Ensuring that every node corresponds exactly to acorresponding element in the schematic (or HDLcode) is a very difficult task.

    The first step is normally to match certain key nodes.

    The second problem with an LVS check is creating a

    true reference.

    The starting point may be HDL code or a schematic.

    Logic synthesis, test insertion, clock-tree synthesis,logical-to-physical pad mapping, and several otherdesign steps each modify the netlist.

    The reference netlist may not be what we wish to

    fabricate. In this case designers increasingly resort to formal

    verification that extracts a Boolean description of thefunction of the layout and compare that to a knowngood HDL description.


    The most important points in this chapter are:

    Routing is divided into global and detailed routing.

    Routing algorithms should match the placementalgorithms.

    Routing is not complete if there are unroutes.

    Clock and power nets are handled as special cases.

    Clock-net widths and power-bus widths must usuallybe set by hand.

    DRC and LVS checks are needed before a design iscomplete.

    The Seven Key Challenges of ASIC Design

    The Process Challenge

    The Complexity Challenge

    The Performance Challenge

    The Power Challenge

    The Density Challenge

    The Quality and Reliability Challenge

    The Productivity Challenge

  • 7/28/2019 ASIC unit8



    Recommendations for Reliable

    ASIC Design

    Developers planning to integrate ASICs into their products

    should look closely at the tools, methodologies, andexpertise of an ASIC vendor.

    ASIC implemented using 0.13-micron process generationand beyond, advanced methods will be required to ensurepredictable, timely delivery of a reliable product.

    Techniques and methods that worked previously may notbe successful on the next process.

    When assessing an ASIC vendor, each of the sevenchallenges should be considered.

    The following questions offer a starting point for exploringvendor capabilities for deep submicron design:

    How is the design partitioned to ensure developmentefficiency?

    Is block partitioning different for synthesis than for placeand route?

    How is the optimal shape and size determined for eachblock partition?

    How are boundary signal crossing points planned foreach block, so they support the shortest possible inter-block routing and the best in-block cell placement forglobal optimization?

    How are global repeaters placed and routed to maximizeproductivity and timing convergence, while providing thebest possible interconnect performance?

    How are timing interfaces implemented between blocks,& how is the timing rolled up to support accurate timinganalysis, keeping in mind such issues as in-die variation?

    How are top-level clock buffering and routing areimplemented, as opposed to local block buffering androuting?

    How is top-level power planned and interconnected toblock-level power and made electrically correct?

    What kind of interconnect resource sharing can beachieved between top-level and block-level layers toreduce congestive areas, and to increase speed oncritical speed paths?

    What type of pre-layout is performed to optimize criticalsignals?

    How are signal integrity checks and fixes performed?

    What steps are taken to ensure signal, power, and t imingintegrity for high-frequency functions?