Anda di halaman 1dari 22

End Cap Cells Usage in Innovus Flow

Cadence Design Systems, Inc.

End Cap Cells Usage in Innovus Flow

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 1


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

Table of Contents
Purpose ............................................................................. 3

Audience ........................................................................... 3

Acronym List...................................................................... 3

1. Commands Introduction .............................................. 4

2. Insert end caps at the row ends only .......................... 4


2.1 Basic usage of addEndCap with -preCap/-postCap ........................................... 4
2.2 Insert pre-cap/post-cap with y-flip ...................................................................... 6
2.3 Insert pre-cap/post-cap in non-default power domain ........................................ 8
2.4 Insert end caps in the specified area .................................................................. 9
2.5 Insert end caps only for the core boundary ...................................................... 10
2.6 Insert pre-cap/post-cap with multiple height cells ............................................. 11
2.7 Use setEndCapMode to specify pre-cap/post-cap ........................................... 13

3. Insert enclosed end caps .......................................... 13


3.1 Condition of enclosed end caps insertion ......................................................... 14
3.2 Insert enclosed end caps with fully cell type specification ................................ 15
3.3 Insert enclosed end caps with y-flip ................................................................. 16
3.4 Insert end caps into unique row between 2 blocks ........................................... 17
3.5 TSMC N20 boundary tap insertion flow ............................................................ 18

4. How to verify the legalization of end caps ................. 20


4.1 Violation types checked by verifyEndCap ........................................................ 20
4.2 pre-cap/post-cap verification ............................................................................ 21
4.3 Enclosed end caps verification ......................................................................... 21
4.4 Include incremental cells into end cap verification ........................................... 21

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 2


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

Purpose
This document is targeted to users who want to insert end caps into the design with
Innovus ® Digital Implementation System. It will introduce various end cap insertion and
verification methodologies recommendations from Cadence Design Systems, Inc. for a
successful chip implementation.

Audience
The document is intended for users with and without experience in Innovus ®. It will
describe in detail the flow involved in the implementation of end cap insertion and
verification.

Acronym List
Acronym Full version
Innovus ® Innovus Digital Implementation System
DEF design exchange format
LEF library exchange format

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 3


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

1. Commands Introduction

In this section, we’ll briefly introduce the following 3 commands, which are absolutely
essential to insert the end cap cells as expectation.

setEndCapMode
Specifies the cells that addEndCap and verifyEndCap command use for end
caps insertion and verification.

addEndCap
Inserts end cap cells into the design based on user specified cell type. It is able to
work in 2 different use models - one is adding end caps at the row ends only; another
is adding enclosed end caps around the core and block boundary.

verifyEndCap
Checks whether the end caps are inserted correctly based on
setEndCapMode settings.

2. Insert end caps at the row ends only

2.1 Basic usage of addEndCap with -preCap/-postCap


Users can use -preCap to specify the cell which be placed at the beginning of each site
row; and use -postCap to specify the cell which be placed at the end of each site row.
addEndCap is able to insert preCap/postCap respectively or simultaneously.

e.g. 2.1.1 Insert preCap at the row start only


<CMD> addEndCap -preCap PRECAP

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 4


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

e.g. 2.1.2 Insert preCap at the row start and postCap at the row end in the same time
<CMD> addEndCap -precap PRECAP -postcap POSTCAP

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 5


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

2.2 Insert pre-cap/post-cap with y-flip


Option -flipY of addEndCap command can flip the orientation of the end cap instances
in Y direction if the site symmetry allows it.

Just look into the example e.g. 2.1.1, the end caps are inserted with R0 and MX
orientation by default; if users assert -flipY with addEndCap, the inserted elements
would be vertically flipped to MY and R180.

e.g. 2.2.1 Use option -flipY to insert vertically flipped preCap


<CMD> addEndCap -preCap PRECAP -flipY

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 6


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

PRECAP are inserted with y-flipping.

zoom in

If the given -postCap is the same as the specified -preCap in the same command line,
and the cell and site are Y symmetrical, the post-cap would be also flipped in the Y
direction.

e.g. 2.2.2 Y-flip pre-cap as post-cap when they are specified with the same cell type
<CMD> addEndCap -preCap PRECAP -postCap PRECAP

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 7


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

pre-cap are y-flipped as post-cap.

zoom in

2.3 Insert pre-cap/post-cap in non-default power domain


For low power designs, users need to assert the power domain name with option -
powerDomain if they want to add the end caps into the non-default power domain with
correct power connection; or else, end caps are inserted to the default power domain only.

e.g. 2.3.1 Insert end caps into non-default power domain PD3.
<CMD> addEndCap -preCap PRECAP -postCap POSTCAP -powerDomain PD3

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 8


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

w/o -powerDomain w/ -powerDomain

2.4 Insert end caps in the specified area


Users are able to select the specific area to insert the end caps. With option –area,
addEndCap only recognizes the potential end cap locations which are enclosed in the
specified box to place the end cap cells.

e.g. 2.4.1 Specify the coordinates of the bounding box to insert pre-cap and post-cap
<CMD> addEndCap -preCap PRECAP -postCap POSTCAP -area 0 20 10 9

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 9


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

Insert end caps into the selected box

2.5 Insert end caps only for the core boundary


By default, addEndCap inserts end caps at the begin/end point of the row and the
locations where rows are obstructed by placement blockages and hard macros.

Users can determine to place end cap at the front and back of the blockages in the core
boundary or not by using option -coreBoundaryOnly.

e.g. 2.5.1 Add end caps at the first and last legal location in the core area only
<CMD> addEndCap -preCap PRECAP -postCap POSTCAP -coreBoundaryOnly

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 10


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

Ignore locations where rows are


broken by placement blockages

2.6 Insert pre-cap/post-cap with multiple height cells


If multiple height end cap cells are provided in library and multiple height core rows exist
in design, addEndCap also supports to insert multiple height cells into its corresponding
site rows.

To make addEndCap insert multiple height end caps correctly, users need to assert:

set spgDoubleHtEndCap 1

e.g. 2.6.1 If double height rows are overlapping with single height rows, the order of
several addEndCap runs would introduce different results.

<CMD> set spgDoubleHtEndCap 1

# Insert double height preCap and postCap


# All starts/ends of double height rows would be filled with the
double height end caps
<CMD> addEndCap -preCap PRECAPDH -postCap POSTCAPDH

# Insert single height preCap and postCap

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 11


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

# WARN message ENCSP-5119 is reported with the following command


as the starts/ends of single height rows are filled with previous
double height end caps
<CMD> addEndCap -preCap PRECAP -postCap POSTCAP

Give WARN:
ENCSP-5119

With the above floorplan, if users run the second addEndCap command firstly, all
candidate locations would be occupied single height end caps and fails to accept double
height elements any more.

e.g. 2.6.2 If double height rows are separated with single height rows, addEndCap
recognizes and fills each site rows by running several command lines.

<CMD> set spgDoubleHtEndCap 1

# Insert double height preCap and postCap to double height rows


<CMD> addEndCap -preCap PRECAPDH -postCap POSTCAPDH

# Insert single height preCap and postCap to single height rows


<CMD> addEndCap -preCap PRECAP -postCap POSTCAP

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 12


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

2.7 Use setEndCapMode to specify pre-cap/post-cap


Except using addEndCap -preCap/-postCap to specify the end cap cells directly,
users can also use command setEndCapMode to define which cell would be placed at
the row starts/ends.

Here setEndCapMode -rightEdge is same as pre-cap, and setEndCapMode -


leftEdge is same as post-cap.

Users can specify and insert –leftEdge and –rightEdge cell respectively or
simultaneously as addEndCap –preCap/-postCap. The Y-flipping attribute of pre-
cap and post-cap is also maintained when cells are specified by setEndCapMode.

3. Insert enclosed end caps


Except inserts the end caps at the row ends, addEndCap also supports to place the end
cap cells at the top and bottom row to constitute an enclosed end cap ring around the
core area, placement blockage and hard macros.

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 13


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

Users need to use setEndCapMode to specify the end cap cells for each edge and
corner. Just take an example, the cell specified by option -topEdge would be placed at
the top of the block with R0 orientation; but if the row at top of a hard macro is horizontal
flipped to R180, the -bottomEdge cell would be used.

Placement blockage
Right Left
Edge Edge

Left-Top Edge Top Edge Left-Top Corner

Right-Bottom Edge

Bottom Edge
Left-Bottom Corner

In enclosed end cap insertion, option –flipY and –coreBoundaryOnly of command


addEndCap are inactive; the usage of addEndCap options –powerDomain and -area
is the same with what’s introduced in chapter 2, which wouldn’t be redundantly repeated
here. In the following sections, we’ll mainly focus on how to get the enclosed end cap ring
with various specifications.

3.1 Condition of enclosed end caps insertion


If any one of –topEdge, -bottomEdge, -*Corner, -*TopEdge or -*BottomEdge is
specified, addEndCap would be switched to enclosed end cap insertion.

addEndCap supports to insert the enclosed end caps in one command line. To guarantee
the end cap ring can be inserted correctly without leaving gap, users should provide
enough cell types to cover all edges and corners when specifying setEndCapMode.

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 14


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

3.2 Insert enclosed end caps with fully cell type specification
In the following example, all cell types are specified by setEndCapMode. In such
condition, all end caps would be inserted with R0 or MX orientation.

One difference with pre-cap/post-cap insertion is, when both -left* and -right* are
specified, the end caps would be not inserted with y-flipping even they are the same cell
and the symmetry is allowed.

e.g. 3.2.1 Insert enclosed end caps with specifying all cell types

<CMD> setEndCapMode -leftEdge EC_LE10


<CMD> setEndCapMode -rightEdge EC_RE10
<CMD> setEndCapMode -topEdge {EC_TE16 EC_TE8 EC_TE4 EC_TE2 EC_TE1}
<CMD> setEndCapMode -bottomEdge {EC_BE8 EC_BE2 EC_BE1}
<CMD> setEndCapMode -leftTopEdge EC_LTE10
<CMD> setEndCapMode –leftBottomEdge EC_LBE10
<CMD> setEndCapMode -rightTopEdge EC_RTE10
<CMD> setEndCapMode -rightBottomEdge EC_RBE10
<CMD> setEndCapMode -leftTopCorner EC_LTC10
<CMD> setEndCapMode -leftBottomCorner EC_LBC10
<CMD> setEndCapMode -rightTopCorner EC_RTC10
<CMD> setEndCapMode –rightBottomCorner EC_RBC10
<CMD> addEndCap

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 15


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

3.3 Insert enclosed end caps with y-flip


In enclosed end cap insertion, if users want to use the same -left* and -right* cell
and the cell and site are Y symmetrical, addEndCap is able to apply y-flipping when only
one of -left* or -right* is specified. An example is, if only -leftEdge is specified
by setEndCapMode command, addEndCap will vertically flip the -leftEdge end caps
and place them at the -rightEdge location.

Based on that, the setting of setEndCapMode is able to be simplified from e.g. 3.2.1 to
the following specification.

e.g. 3.3.1 Insert enclosed end caps with y-flipping. In this case, all -right* cells are not
specified. Compared with e.g. 3.2.1, addEndCap flips -left* cells to build the end cap ring.

<CMD> setEndCapMode -leftEdge EC_LE10


<CMD> setEndCapMode -topEdge {EC_TE16 EC_TE8 EC_TE4 EC_TE2 EC_TE1}
<CMD> setEndCapMode -bottomEdge {EC_BE8 EC_BE2 EC_BE1}

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 16


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

<CMD> setEndCapMode -leftTopEdge EC_LTE10


<CMD> setEndCapMode -leftBottomEdge EC_LBE10
<CMD> setEndCapMode -leftTopCorner EC_LTC10
<CMD> setEndCapMode -leftBottomCorner EC_LBC10
<CMD> addEndCap

All -right* cells have y-flipped orientation

3.4 Insert end caps into unique row between 2 blocks


For designs which have unique row between power domains, placement blockages or
hard macros, addEndCap fails to fill the space with end caps by using the
setEndCapMode setting of e.g. 3.2.1 and 3.3.1 – both -topEdge and -bottomEdge
cells are indispensable to round the above and below objects; addEndCap has no way
to place them at the same location and has to leave gaps at these locations.

Option -topBottomEdge is introduced to solve the awkward scenario.

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 17


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

e.g. 3.4.1 Use option -topBottomEdge to handle unique row between 2 blocks

<CMD> setEndCapMode -leftEdge EC_LE10


<CMD> setEndCapMode -topEdge {EC_TE16 EC_TE8 EC_TE4 EC_TE2 EC_TE1}
<CMD> setEndCapMode -bottomEdge {EC_BE8 EC_BE2 EC_BE1}
<CMD> setEndCapMode -leftTopEdge EC_LTE10
<CMD> setEndCapMode -leftBottomEdge EC_LBE10
<CMD> setEndCapMode -leftTopCorner EC_LTC10
<CMD> setEndCapMode -leftBottomCorner EC_LBC10
<CMD> setEndCapMode -topBottomEdge {EC_TBE8 EC_TBE2 EC_TBE1}
<CMD> addEndCap

w/o -topBottomEdge w/ -topBottomEdge

3.5 TSMC N20 boundary tap insertion flow


For TSMC 20nm, option -boundary_tap is introduced for the boundary tap insertion,
which inserts well tap cells on the top and bottom rows by honoring command
set_well_tap_mode specification during enclosed end cap insertion, creates
placement blockages automatically to fill the narrow channels and single rows to avoid
unexpected result of end caps and well taps inserting.

After addEndCap, the following 3 violation types are marked with “Violation Browser”.
- Fill 1 channel: 1-site gap would be introduced if inserting end caps
- Narrow Channel: no enough space to insert end caps between 2 blocks; or the
space is full filled with 2 end caps.
- Narrow Edge: the edge of block is too short to place a corner cell

e.g. 3.5.1 Insert enclosed boundary tap in TSMC 20nm flow

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 18


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

# Trigger boundary tap insertion flow


<CMD> setEndCapMode -boundary_tap true

# Specify end caps


<CMD> setEndCapMode -leftEdge EC_LE10
<CMD> setEndCapMode -rightEdge EC_RE10
<CMD> setEndCapMode -topEdge {EC_TE16 EC_TE8 EC_TE4 EC_TE2 EC_TE1}
<CMD> setEndCapMode -leftTopCorner EC_LTC10
<CMD> setEndCapMode -rightTopCorner EC_RTC10
<CMD> setEndCapMode -leftBottomCorner EC_LBC10
<CMD> setEndCapMode -leftTopEdge EC_LTE10
<CMD> setEndCapMode -rightBottomEdge EC_RBE10
<CMD> setEndCapMode -bottomEdge {EC_BE8 EC_BE2 EC_BE1}

# Specify well tap cell would be added in the top/bottom rows and
the spacing rule would be honored during cell inserting
<CMD> set_well_tap_mode -top_tap_Cell WTAP -bottom_tap_Cell WTAP
-rule 28

<CMD> addEndCap

Before running addEndCap, the initial design snapshot is

After addEndCap with option –boundary_tap, we can see that well taps are
simultaneously placed at the top and bottom row with enclosed end cap insertion (well
taps are highlighted with red color), the floorplan is changed and violation markers warn
these changes.

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 19


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

narrow channel
- channels are fully occupied by end caps

narrow channel
- no enough space for end caps

Narrow edge – edge is too


short to place a corner cell

Fill 1 channel – will leave1x


gap if inserting end caps here

4. How to verify the legalization of end caps

4.1 Violation types checked by verifyEndCap


Using command verifyEndCap, the following 2 violation types are flagged by default:
- Inserted end cap cell is of wrong type
- End cap cell is missed

verifyEndCap is also able to check whether the with the end cap cells are inserted in
the right location with option -wrongLocation option. If users specify this option,
verifyEndCap marks violation for any cap cell that is not on the start/end point of the
row or nor on the boundary of the core area/blocks.

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 20


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

4.2 pre-cap/post-cap verification


verifyEndCap only gets the end cap cells from command setEndCapMode. That
means, if users used addEndCap option -preCap/-postCap to place the end caps at
the row ends, they have to assert the cell types with addEndCap before run
verifyEndCap.

e.g. 4.2.1 Use verifyEndCap to check whether pre-cap and post-cap are placed
correctly

<CMD> addEndCap -preCap PRECAP -postCap POSTCAP


<CMD> setEndCapMode –leftEdge POSTCAP –rightEdge PRECAP
<CMD> verifyEndCap

Or

<CMD> setEndCapMode –leftEdge POSTCAP –rightEdge PRECAP


<CMD> addEndCap
<CMD> verifyEndCap

4.3 Enclosed end caps verification


By default, verifyEndCap only checks whether the end cap cells are correctly placed
as pre-cap and post-cap. To make it work for enclosed end cap ring, users have to assert
option –tripleWell.

4.4 Include incremental cells into end cap verification


For designs which allow special cells to be pre-placed at the end cap locations, such as
well taps or power switch cells; users have to update setEndCapMode correspondingly
before verifyEndCap to make it filter the false violations.

e.g. 4.4.1 verify end cap legalization when PSW is pre-placed at the row ends

As option -leftEdge and -rightEdge only support to specify unique end cap cell,
option -incrementalLeftEdge and -incrementalRightEdge are introduced for
setEndCapMode command. These 2 options are not allowed to be set without -
leftEdge/-rightEdge and have no impact for addEndCap; verifyEndCap checks
cells specified by both -leftEdge and -incrementalLeftEdge whether be placed at
the row ends.

<CMD> setEndCapMode -leftEdge POSTCAP –rightEdge PRECAP

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 21


ALL RIGHTS RESERVED.
End Cap Cells Usage in Innovus Flow

<CMD> setEndCapMode –incrementalLeftEdge PSW –


incrementalRightEdge PSW
<CMD> addEndCap

e.g. 4.4.2 verify end cap legalization when well taps are located at the top/bottom rows

In example 3.5.1, well taps are inserted at the top and bottom rows of the core area and
blocks simultaneously with end cap insertion. To treat these well taps as end caps during
end cap verifying, users need to add the well tap cell into -topEdge/-bottomEdge cell
list.

<CMD> setEndCapMode -topEdge {EC_TE16 EC_TE8 EC_TE4 EC_TE2 EC_TE1


WTAP}
<CMD> setEndCapMode -bottomEdge {EC_BE8 EC_BE2 EC_BE1 WTAP}
<CMD> verifyEndCap –tripleWell

COPYRIGHT © 2017, CADENCE DESIGN SYSTEMS, INC. PAGE 22


ALL RIGHTS RESERVED.

Anda mungkin juga menyukai