Table of Contents
Purpose ............................................................................. 3
Audience ........................................................................... 3
Acronym List...................................................................... 3
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
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.
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
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.
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
zoom in
e.g. 2.3.1 Insert end caps into non-default power domain PD3.
<CMD> addEndCap -preCap PRECAP -postCap POSTCAP -powerDomain PD3
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
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
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.
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.
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.
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
Right-Bottom Edge
Bottom Edge
Left-Bottom Corner
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.
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
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.
e.g. 3.4.1 Use option -topBottomEdge to handle unique row between 2 blocks
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
# 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
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.
narrow channel
- channels are fully occupied by end caps
narrow channel
- no enough space for end caps
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.
e.g. 4.2.1 Use verifyEndCap to check whether pre-cap and post-cap are placed
correctly
Or
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.
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.