Tap Cell Insertion: Chip Finishing

Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

Tap Cell Insertion

Chip Finishing

IC Compiler II
August 2019
CONFIDENTIAL INFORMATION
The information contained in this presentation is the confidential and proprietary
information of Synopsys. You are not permitted to disseminate or use any of
the information provided to you in this presentation outside of Synopsys
without prior written authorization.

IMPORTANT NOTICE
In the event information in this presentation reflects Synopsys’ future plans, such plans
are as of the date of this presentation and are subject to change. Synopsys is not
obligated to update this presentation or develop the products with the features and
functionality discussed in this presentation. Additionally, Synopsys’ services and products
may only be offered and purchased pursuant to an authorized quote and purchase order
or a mutually agreed upon written contract with Synopsys.

© 2019 Synopsys, Inc. 2


Tap Cell Insertion
Introduction
• A tap cell is a special nonlogic cell with a well
tie, substrate tie, or both
– Tap cells are needed to reduce substrate and well
resistance for better latchup and noise properties
Macro / IP placement
– These cells are typically used when most or all of
the standard cells in the library contain no
substrate or well taps Boundary cell insertion
– Substrate and well contact mask rule
– Minimum distance from a transistor to the closest Regular tap cell insertion
substrate or well contact create_tap_cells
– Tap cell rule is approximately 15-30um for a typical
process Standard cell placement

• Before global placement (during the


floorplanning stage), you can insert tap cells in Routing

the block to form a two-dimensional array


structure to ensure that all standard cells placed
subsequently comply with the
maximum diffusion-to-tap distance limit

© 2019 Synopsys, Inc. 3


Tap Cell Insertion
create_tap_cells
• To add a tap cell array based on the site rows, use the
create_tap_cells command
– You must specify the name of the library cell to use for tap
cell insertion (-lib_cell option) and the maximum distance
in microns between tap cells (-distance option)

• By default, the create_tap_cells command inserts tap


cells in every row for the entire block
– The tool starts inserting the tap cells at the left edge of the
row and uses the specified tap distance to determine the
location of the subsequent tap cells.
– If a tap cell does not exist within the minimum tap distance
(half the specified tap distance) from each row edge adjacent
to the block’s boundary, a hard macro, or a hard placement
blockage, the tool inserts an additional tap cell

• The figure on the right shows the default tap cell


placement for a block that uses the every-row insertion
pattern
– Note that extra tap cells are added to the right of the hard
macro to ensure that a tap cell exists within the minimum tap
distance from the edge of the hard macro

© 2019 Synopsys, Inc. 4


Tap Cell Insertion
User Interface
create_tap_cells
-lib_cell cell_name
-distance tap_cell_distance
[–voltage_area {va_collection}]
[–offset distance]
[–pattern every_row | every_other_row | stagger] Existing options
[–skip_fixed_cells]
[–prefix tap_cell_prefix]
[–separator tap_cell_separator]
[-mirrored_row_lib_cell cell_name]
[-no_abutment]
[-no_abutment_horizontal_spacing number_of_unit_tiles] New options
[-no_abutment_corner_spacing number_of_unit_tiles]
[-no_abutment_cells lib_cells]

© 2019 Synopsys, Inc. 5


create_tap_cells
User Interface (Existing Options #1)
-lib_cell cell_name
– Specifies the library reference cell to use as a tap cell. You must specify a single library cell.
– This is a required option.

-distance tap_cell_distance
– Specifies the distance in microns between two tap cells in a row. This distance is referred to as the tap distance.
– This is a required option.

-voltage_area {va_collection}
– Specifies the voltage areas in which to create tap cells.
– By default, the command creates tap cells in all voltage areas.

-offset distance
– Specifies the distance in microns that the tap pattern should be shifted to the right. If the offset distance is a multiple of the
tap distance, the effective offset is 0. For example, if the tap distance is 10 microns and the offset is 32 microns, the effective
offset is 2 (32 - 3x10).
– The default is 0.

© 2019 Synopsys, Inc. 6


create_tap_cells
User Interface (Existing Options #2)
-pattern every_row | every_other_row | stagger
– Specifies the tap cell insertion pattern. The supported patterns are
– every_row (the default)
– The command adds tap cells to every row using the specified tap distance.
– The tap distance specified for this pattern should be approximately twice the design rule distance limit.

– every_other_row
– The command adds tap cells to every other row for odd rows only. This reduces the number of required tap cells by
approximately half as compared to the normal pattern.
– The tap distance specified for this pattern should be approximately twice the design rule distance limit.

– stagger
– The command adds tap cells to every row. The tap cells on even rows are offset with half the tap distance relative to the odd
rows, producing a checkerboard-like pattern. This pattern also reduces the number of required tap cells by approximately half
as compared to the normal pattern.
– The tap distance specified for this pattern should be approximately four times the design rule distance limit.

© 2019 Synopsys, Inc. 7


create_tap_cells
User Interface (Existing Options #3)
-skip_fixed_cells
– Prevents the command from inserting tap cells in locations that are occupied by fixed cells.
– When you use this option, the tool treats a fixed cell like a blockage, which breaks the row and might cause a
tap cell to be inserted on each side of the fixed cell. To prevent the insertion of tap cells that overlap fixed cells
without breaking the row, use the -preserve_distance_continuity option with the -skip_fixed_cells
option.
– By default, the command inserts a tap cell in each calculated tap location, even if it is occupied by a fixed cell.

-prefix tap_cell_prefix
– Specifies the prefix for the created tap cells. When you use this option, the command uses the following
naming convention for the inserted tap cells:
tapfiller!cell_prefix!lib_cell!number

-separator tap_cell_separator
– Specifies the separator character that is used when composing the instance name of the tap cell.
– The default is "!".

© 2019 Synopsys, Inc. 8


Dual-Rail Tap Cell Insertion
Overview
• In emerging nodes, some tap cells have dual rail requirements
• The following features are added to support these requirements during tap cell insertion:
– Specification of tap cells to use on mirrored rows, which have an orientation of MX instead of R0
– Added the -mirrored_row_lib_cell option
– Adjustment of the tap cell spacing in the x-direction to comply with coloring rules
– This feature is enabled when the legalizer considers color
set_app_options –name place.legalize.enable_pin_color_alignment_check –value true
– To prevent signoff DRC violations, specify a slightly smaller tap distance with the -distance option
– If the command cannot meet the tap distance, it searches the nearest locations one unit tile at a time until one of
the following occurs:
– It finds a legal location
– The tap distance minus the tap width has been exceeded

© 2019 Synopsys, Inc. 9


Dual-Rail Tap Cell Insertion
User Interface
• Added a new command option to the create_tap_cells command:
-mirrored_row_lib_cell cell_name

• The -mirrored_row_lib_cell option specifies the library reference cell to use as a tap cell on
mirrored rows
– Mirrored rows are rows whose row orientation is set to MX rather than R0
– You can specify only a single library cell
– If you do not use this option, the cell specified with the -lib_cell option is used on mirrored rows

© 2019 Synopsys, Inc. 10


Dual-Rail Tap Cell Insertion
Usage Example: Different Tap Cell on Mirrored Rows
• The following command inserts a tap array in every row
create_tap_cells –lib_cell mylib/cellA –distance 100 \
–mirrored_row_lib_cells mylib/cellB
– The tap cell array contains instances of cellA on rows with R0 orientation and instances of cellB on rows
with MX orientation
– The distance between tap cells is 100 microns

cellA51 cellA52

50 cellB41 cellB42
L cellA31 cellA32 R
Row with 100
MX orientation
cellB21 cellB22 d

cellA11 cellA22

Boundary cells Tap cells


© 2019 Synopsys, Inc. 11
Dual-Rail Tap Cell Insertion
Usage Example: Different Tap Cell on Mirrored Rows and Considers Coloring Rules
• The following command inserts a tap array in every row
set_app_options –name place.legalize.enable_pin_color_alignment_check -value true
create_tap_cells –mirrored_row_lib_cells mylib/cellB –lib_cell mylib/cellA –distance 100
– The tap cell array contains instances of cellA on rows with R0 orientation and instances of cellB on rows
with MX orientation
– The distance between tap cells is 100 microns
50.046

cellA31 cellA32
99.978
L R
cellB21 cellB22

cellA11 cellA22

M2 pin © 2019 Synopsys, Inc. 12


Tap Cell Abutment Rule
Overview and User Interface
• The create_tap_cells command has four new options to comply with different sets of DRC
rules that do not allow certain spacing or abutment between tap cells or between tap cells and
other cells
create_tap_cells
-no_abutment
When this option is specified, tap cells are placed so that they do not abut

-no_abutment_horizontal_spacing number_of_unit_tiles
Horizontal spacing for no abutment

-no_abutment_corner_spacing number_of_unit_tiles
Horizontal corner spacing for no abutment

-no_abutment_cells lib_cells
When this option is specified, tap cells cannot abut the cells specified in this option

© 2019 Synopsys, Inc. 13


Tap Cell Abutment Rule
Usage of –no_abutment
• When -no_abutment is used, no abutment is allowed other than touching corners

© 2019 Synopsys, Inc. 14


Tap Cell Abutment Rule
Usage of –no_abutment_corner_spacing
• When -no_abutment_corner_spacing is used, the corner spacing must be at least the
specified number of unit tiles

© 2019 Synopsys, Inc. 15


Tap Cell Abutment Rule
Usage of –no_abutment_horizontal_spacing
• When -no_abutment_horizontal_spacing is specified, the horizontal spacing must be at least
the specified number of unit tiles

© 2019 Synopsys, Inc. 16


Dense Tap Cell Insertion
Introduction
• The create_dense_tap_cells command inserts a
dense pattern of tap cells in the specified regions
– Before using this command, you must use Macro/IP placement
the create_tap_cells command to perform standard tap
cell insertion

Boundary cell insertion


• The tap walls and dense tap cells are necessary to
ensure proper operation of the digital circuit
– The tap walls and cell placement observe the prohibited Regular tap cell insertion
vertical abutment rules create_tap_cells

• Within the specified region, the command performs the Dense tap cell insertion
following tasks: create_dense_tap_cells
– Deletes the existing tap cells
– Reinserts the tap cells using the pitch specified with the Standard cell placement
-distance or -isn_layer_distance option
– Marks the inserted tap cells as fixed
Routing
• You can also perform dense tap cell insertion in
intensified substrate noise (ISN) regions by using the
-isn_layer or -isn_layer_distance option

© 2019 Synopsys, Inc. 17


Tap Cell Insertion of Intensified Substrate Noise Region
Background and Requirements
• A special non-manufacturing layer in the technology file is used to identify areas of the chip
where the silicon substrate is subjected to intensified substrate noise (ISN)
• The noise source could come from a hard IP or macro or a component outside the standard cell
placeable area
– Standard cells are typically not a noise source
• An ISN layer rectangle is created within a certain radius of a substrate noise source
– It is created by the user on a design, IP, or soft macros
• The standard cell placeable area within an ISN layer rectangle needs to have the following
special tap cell placement:
– Left and right vertical tap walls (a columns of cells) along the left and right edge of the placeable area
boundary, respectively
– Top and bottom horizontal tap walls (a row of cells with user-specified pitch) along the top and bottom
placeable area boundary, respectively
– Tap cells with dense pitch (user specified) in the standard cell placeable area.

© 2019 Synopsys, Inc. 18


Intensified Substrate Noise (ISN) Area
ISN areas that require
special tap cell treatment

Standard cell
core area

Noisy
IP or macro Noise sources

ISN rectangles
created by the user
© 2019 Synopsys, Inc. 19
ISN Area Tap Cell Creation
ISN rectangles
Horizontal wall tap spacing

Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry
Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell
Bdry Wall Wall Reg Bdry
Cell Tap Tap Tap Cell
Horizontal tap
Bdry Reg Bdry
wall (row of Wall Dense Dense
Cell Tap Tap Tap Tap Cell
tap cells)
Bdry Wall Dense Reg Bdry
Cell Tap Tap Tap Cell
Bdry Wall Dense ISN dense Dense Reg Bdry
Tap Tap tap cell area Tap Cell
Cell Tap

Bdry Wall Reg Regular tap Bdry


Dense
Cell Tap Tap Tap cell area Cell
Bdry Wall Dense Dense Reg Bdry
Cell Tap Tap Tap Tap Cell
Bdry Reg Bdry
Vertical tap Cell Dense tap Tap Cell
wall (column of Bdry Reg spacing Reg Bdry
Cell Tap Tap Cell
tap cells)
Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry Bdry
Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell Cell

Standard Cell Placement Area


© 2019 Synopsys, Inc. 20
Wall Alignment at Outer Corner

ILLEGAL!

At the outer corner, the last cell at a horizontal


tap wall must be aligned to the vertical wall.
ILLEGAL!
In some cases (not shown), an additional tap cell
must be added to ensure that the minimum
horizontal tap wall spacing is met.

© 2019 Synopsys, Inc. 21


Wall Alignment at Inner Corner
Placing horizontal tap wall cell at
the exact distance location will
cause misalignment at the inner
corner. An additional tap cell is
added to ensure that minimum
horizontal tap wall spacing is met.

Reduce the distance of the


last horizontal tap cell to
align to the vertical tap wall.

© 2019 Synopsys, Inc. 22


ISN Area Tap Cell Insertion Flow
create_dense_tap_cells
• User creates rectangles on ISN layers in IP or
macros, soft macros, or the chip. Macro/IP placement

• The create_dense_tap_cells command Boundary cell insertion


with the -isn_layer option identifies the ISN
areas and inserts tap walls and dense tap Regular tap cell insertion
create_tap_cells
cells
ISN area tap cell insertion
create_dense_tap_cells –isn_layer

Standard cell placement

Routing

© 2019 Synopsys, Inc. 23


Dense Tap Cell Insertion
User Interface
• The create_dense_tap_cells command supports the following new options (red text) to handle the
tap cell placement requirements of ISN areas:
create_dense_tap_cells
-lib_cell cell_name
-distance tap_cell_distance
[-bboxes { llx lly urx ury }]
[-offset distance]
[-pattern every_row | every_other_row | stagger]
Existing options
[-skip_fixed_cells]
[-prefix tap_cell_prefix]
[-separator tap_cell_separator]
[-at_distance_only]
[-isn_layer layer]
[-boundary_lib_cell cell_name]
New options
[-horizontal_boundary_spacing x_value]
[-left_boundary_flipped]
[-right_boundary_flipped]

© 2019 Synopsys, Inc. 24


create_dense_tap_cells
User Interface (Existing Options #1)
-lib_cell cell_name
– Specifies the library reference cell to use as a tap cell. You can specify only a single library cell. This is a
required option.

-distance tap_cell_distance
– Specifies the distance in microns between two tap cells in a row. This distance is referred to as the tap
distance. This is a required option.

-bboxes { llx lly urx ury }


– Specifies the rectangular region in microns in which to insert dense tap cells. A rectangle is specified as a list
of four coordinates, {llx lly urx ury}, which represent the lower-left and upper-right corners of the
rectangle. The command fails if the rectangular region is not specified.

-offset distance
– Specifies the distance in microns that the tap pattern should be shifted to the right. If the offset distance is a
multiple of the tap distance, the effective offset is 0. For example, if the tap distance is 10 microns and the
offset is 32 microns, the effective offset is 2 (32 - 3x10). The default is 0.

© 2019 Synopsys, Inc. 25


create_dense_tap_cells
User Interface (Existing options #2)
-pattern every_row | every_other_row | stagger
– Specifies the tap cell insertion pattern. One and only one pattern must be specified.

-skip_fixed_cells
– Prevents the tool from creating tap cells in locations that are occupied by fixed cells.

-prefix tap_cell_prefix
– Specifies the prefix for the created tap cells. By default, no prefix is added.

-separator tap_cell_separator
– Specifies the separator character that is used when composing the instance name of the tap cell. The
default is "!".

© 2019 Synopsys, Inc. 26


create_dense_tap_cells
User Interface (New Options)
-isn_layer layer
– Specifies the special technology file layer that is used to identify regions with intensified substrate noise.
Horizontal and vertical tap walls will be created for all such regions in addition to dense tap cells.

-boundary_lib_cell cell_name
– Specifies the library cell used to create vertical and horizontal tap walls along the boundary of the placeable
area. If not specified, the cell specified in -lib_cell is used.

-horizontal_boundary_spacing x_value
– Specifies the spacing value in microns between two cells of a horizontal tap wall. The default is 0.

• -left_boundary_flipped
– Specifies that the cells of tap walls on the left boundary are flipped.

• -right_boundary_flipped
– Specifies that the cells of tap walls on the right boundary are flipped.

© 2019 Synopsys, Inc. 27


Tap Cell Insertion
Best Practices
• Some rules are complicated; you should not define the rules by yourselves

• Consult your foundry or library vendor for the rule usage and follow their recommendations for
DRC-free insertion

© 2019 Synopsys, Inc. 28


Thank You

You might also like