Professional Documents
Culture Documents
IOPlanner
IOPlanner
Application Note
Product Version 16.2
November 2008
1991–2008 Cadence Design Systems, Inc. All rights reserved.
Portions © Apache Software Foundation, Sun Microsystems, Free Software Foundation, Inc., Regents of the
University of California, Massachusetts Institute of Technology, University of Florida. Used by permission.
Printed in the United States of America.
Cadence Design Systems, Inc. (Cadence), 2655 Seely Ave., San Jose, CA 95134, USA.
SiP Digital Architect / SiP Layout contains technology licensed from, and copyrighted by: Apache Software
Foundation, 1901 Munsey Drive Forest Hill, MD 21050, USA © 2000-2005, Apache Software Foundation. Sun
Microsystems, 4150 Network Circle, Santa Clara, CA 95054 USA © 1994-2007, Sun Microsystems, Inc. Free
Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA © 1989, 1991, Free Software
Foundation, Inc. Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, © 2001,
Regents of the University of California. Daniel Stenberg, © 1996 - 2006, Daniel Stenberg. UMFPACK © 2005,
Timothy A. Davis, University of Florida, (davis@cise.ulf.edu). Ken Martin, Will Schroeder, Bill Lorensen © 1993-
2002, Ken Martin, Will Schroeder, Bill Lorensen. Massachusetts Institute of Technology, 77 Massachusetts
Avenue, Cambridge, Massachusetts, USA © 2003, the Board of Trustees of Massachusetts Institute of
Technology. All rights reserved.
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. contained in this document are
attributed to Cadence with the appropriate symbol. For queries regarding Cadence’s trademarks, contact the
corporate legal department at the address shown above or call 800.862.4522.
Open SystemC, Open SystemC Initiative, OSCI, SystemC, and SystemC Initiative are trademarks or registered
trademarks of Open SystemC Initiative, Inc. in the United States and other countries and are used with
permission.
All other trademarks are the property of their respective holders.
Restricted Permission: This publication is protected by copyright law and international treaties and contains
trade secrets and proprietary information owned by Cadence. Unauthorized reproduction or distribution of this
publication, or any portion of it, may result in civil and criminal penalties. Except as specified in this permission
statement, this publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted,
or distributed in any way, without prior written permission from Cadence. Unless otherwise agreed to by
Cadence in writing, this statement grants Cadence customers permission to print one (1) hard copy of this
publication subject to the following conditions:
1. The publication may be used only in accordance with a written agreement between Cadence and its
customer.
2. The publication may not be modified in any way.
3. Any authorized copy of the publication or portion thereof must include all original copyright, trademark,
and other proprietary notices and this permission statement.
4. The information contained in this document cannot be used in the development of like products or
software, whether for internal or external use, and shall not be used for the benefit of any other party,
whether or not for consideration.
Patents: SiP Digital Architect / SiP Layout, described in this document, is protected by U.S. Patents 5,481,695;
5,510,998; 5,550,748; 5,590,049; 5,625,565; 5,715,408; 6,516,447; 6,594,799; 6,851,094; 7,017,137;
7,143,341; 7,168,041.
Disclaimer: Information in this publication is subject to change without notice and does not represent a
commitment on the part of Cadence. Except as may be explicitly set forth in such agreement, Cadence does
not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy or
usefulness of the information contained in this document. Cadence does not warrant that use of such
information will not infringe any third party rights, nor does Cadence assume any liability for damages or costs
of any kind that may result from use of such information.
Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in
FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
Cadence I/O Planner: Application Note
Contents
Flow Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Library Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
OA Reference Library Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
IC Initialization and Placement into the Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Flow 1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Flow 2 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Flow Details Between FE and IOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Flow Details Between IOP and SiP Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Formats and File Management 8
Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
LEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
DEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Open Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Licensing and First Encounter Feature Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Encounter Functionality in IOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Cross Probing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Pin Swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Bumps (Die-Connect Point Separate from I/O Cell) . . . . . . . . . . . . . . . . . . . . . . . . . . 13
I/O Pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
ECO (Addition/Deletion of Nets at the IC/Package Boundary) . . . . . . . . . . . . . . . . . . . . 14
Physical Die vs. Drawn Die . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Bump Array Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Bump Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
RDL Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Manual Wire Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1
Cadence I/O Planner
This document is for customers using Cadence's Encounter-based I/O Planning functionality
in the SiP Layout and SiP Architect products. It describes the flows, file formats, and
operations between the package environment and the IC environment to enable IC/package
co-design. In this document, references to SiP Layout also apply to SiP Architect. References
to I/O Planner (IOP), apply to the version of Encounter that is included with SiP Layout.
References to Encounter or First Encounter (FE) refer to a full version of First Encounter that
is used for full IC implementation and is not included as part of the SiP package.
This document does not provide command reference information, but does refer to some
commands that are used in the System-in-Package (SiP) design flow.
Flow Descriptions
Figure1-1 shows the data flow among these tools: SiP Layout, I/O Planner (IOP), and First
Encounter (FE). You initialize a design in FE by reading LEF library files and Verilog design
files. You send IC I/O design data from FE to SiP Layout through a Design Exchange Format
(DEF) file or an OpenAccess (OA) database. Then you return I/O design data to Encounter
from SiP Layout through a DEF file.
Library Setup
Before you can create an instance of the die and edit the die in SiP Layout, you must first read
the LEF libraries into SiP Layout, using the SiP Layout LEF Library Manager.
There are two sources for initial IC die data. One is from DEF or OA, generated by FE.
Another is the Verilog gate level netlist from the IC design. If any of these files is available,
you can create an instance of the IC in the package.
Within SiP Layout, the package environment and IOP communicate via Message Passing
System (MPS) calls. Data transfers through an OA database.
a. Load a representative Verilog netlist and LEF library into Encounter (or IOP).
2. Convert the LEF files to an OA reference library using the lef2oa and
verilogAnnotate commands.
The following example shows the commands to create three OA reference libraries:
techFile, FEOAreflib, and memReflib. You can compile your LEF files into one or many
OA reference libraries.
lef2oa -lib techFile -lef gpdk090_tech_9lm.lef -DMSystem oaDMFileSys
lef2oa -lib FEOAreflib -lef io_sites.lef -DMSystem oaDMFileSys -techLib
techFile
lef2oa -lib FEOAreflib -lef gsclib090.lef -DMSystem oaDMFileSys -techLib
techFile
lef2oa -lib FEOAreflib -lef abstractFlipChip.lef -DMSystem oaDMFileSys -
techLib techFile
lef2oa -lib FEOAreflib -lef bump.lef -DMSystem oaDMFileSys -techLib techFile
When you run the lef2oa command, a lib.defs file is automatically created. The
script above creates the following lib.defs file:
DEFINE techFile techFile
ASSIGN techFile libMode shared
DEFINE FEOAreflib FEOAreflib
ASSIGN FEOAreflib libMode shared
DEFINE memReflib .memReflib
ASSIGN memReflib libMode shared
DEFINE test test
ASSIGN test libMode shared
This lib.defs file must reside in your working directory. You must modify it point to your
OA reference libraries which should not be in your working directory. For this example, the
reference libraries are in the library/lef directory and the working directory is at the
same level as the library/ directory, so the lib.defs file is modified as follows:
DEFINE techFile ../library/lef/techFile
ASSIGN techFile libMode shared
DEFINE FEOAreflib ../library/lef/FEOAreflib
ASSIGN FEOAreflib libMode shared
DEFINE memReflib ../library/lef/memReflib
ASSIGN memReflib libMode shared
DEFINE test test
ASSIGN test libMode shared
The second flow, Flow 2 in Figure 1-2, shows the System Connectivity Manager (SCM) and
SiP Layout loading the IC Verilog gate level netlist and building it into the system netlist. IOP
then opens to load the IC Verilog netlist. The IC physical I/O plan initializes in IOP, then
returns to SiP Layout for placement in the package.
Flow 1 Outline
1. IC initialization occurs within FE.
The design is written to disk in one of two formats (For flow details, see Flow Details
Between FE and IOP on page 6):
❑ Open Access
FE saves the full design into the OA database. When IOP accesses this database,
it loads the full design. This provides more design information for I/O planning, but
comes at the cost of higher memory consumption and longer run times.
❑ DEF
FE generates a DEF file with all the standard cells and nets removed from the
design. IOP sees only the I/O cells and nets, and any hard macro blocks in the
design. Run times are faster, and memory use is lower.
2. SiP Layout adds the die to the package by creating a die symbol, places the die in the
package, and creates nets in the package that correspond to nets assigned to the IC
bumps, or wire bond I/O cells. You can assign nets imported from the IC bump
assignments to the package ball array.
3. From Sip Layout, open the IC for editing. An IOP window opens.
4. From IOP, you can:
Flow 2 Outline
1. SCM or SiP Layout reads the IC Verilog netlist, creates an instance in the package
netlist, and connects it to other package components (BGA, memories, and so on).
Since there is no physical definition for the die, it is not placed in the package.
2. Open the IC for editing from SiP Layout.
An IOP window opens.
3. IOP reads the LEF libraries and Verilog netlist.
4. In the IOP window, the physical floorplan is initialized, and the rest of the flow continues
as is described above from step 4 of Flow 1.
-or-
Create an OA database with this command: File – Save OA Design
To send modifications to the IC database back to FE from IOP, you must use DEF because
the OA reader does not support incremental updates. Create the DEF file with this command:
defOut -noCoreCells -netlist -layout <filename>
Note: if you read the IC design into IOP from a DEF file that has no core cells in it, you do
not need to use any of the options (noCoreCells, netlist, layout).
When FE reads the DEF, all bumps and RDL routes append to the full design database. To
prevent duplication of bumps and routes, you must run the defIn command as shown below:
defIn -deleteRDL -deleteBump <filename>
This causes FE to delete all the bumps and RDL routes before reading the DEF file.
a. Select the library definition file to use, normally lib.defs, in the current working
directory.
c. Select the cell from the chosen OA library for the co-design IC.
d. Select the view of the chosen cell that contains the IC layout for the co-design die.
Note that FE must have written the library, cell, and view using its saveOaDesign
command, or the co-design die will not work correctly.
e. If you select the option to load from DEF, specify the DEF input file. Then specify the
library name for the OA file used as the data exchange format between SiP Layout
and IOP. You cannot give it a name of a file that already exists. If you do, the OK
button is disabled. The cell name is taken from the DEF file, and the view name is
layout.
f. If you select the option to load from Verilog, specify the Verilog input file, then the
library and cell name of the OA file used as the data exchange format between SiP
Layout and IOP.
g. Once you specify the input and output file names, a dialog box appears. Follow the
sequence below to add the die to the package:
❍ Specify the reference designator for the co-design die.
❍ Specify the orientation, location, and rotation for the co-design die.
❍ Click Import to import the IC data from OA and add an instance of it to the
package as a co-design die.
If the import is successful, the tool adds the die to the package according to the
specified placement parameters. IOP does not launch because you are not
making any changes to the die; you are only adding the existing die to the
package from OA.
If you select an OA design that already exists in the package, the tool displays
an error message since currently, multiple instances of a co-design die are not
allowed in a package.
❍ Once the add codesign die command has worked successfully, save the
SiP design using the File – Save command in SiP Layout.
3. To edit the die in IOP, use the Edit – Die command. Follow the sequence of steps
described below:
a. From the first screen of the Die Editor dialog box, select the co-design die for editing.
SiP Layout determines which OA library, cell, and view contains the IC design for the
die. It then launches IOP and instructs IOP to open the IC layout from that OA library,
cell, and view. Note that FE must have previously written the OA library, cell, and
view or this operation fails.
b. IOP launches, performs a handshake with SiP Layout to make sure it was launched
correctly and can communicate successfully with SiP Layout, and then reads the OA
library, cell, and view using its Restore OA Design capability.
e. When you complete the current set of changes, use the IOP updatePackage
command.
IOP saves the current IC layout to a temporary OA library, cell, and view using its
Save OA Design capability. Then IOP sends a message to SiP Layout to instruct
it to import the data from OA and update the die instance in the package design.
SiP Layout reads the specified temp OA library, cell, and view, and replaces the
previous version of the die representation with a new one according to the original
placement location and orientation.
g. When you are satisfied with the latest set of changes, save the design using the File
– Save command in SiP Layout.
SiP Layout saves the current SiP database, and then for each co-design die that has
unsaved changes stored in temporary OA library, cell, and views, it replaces the
original OA library, cell, and view with the latest temporary version written by IOP.
Verilog
FE and IOP load a design from either a Verilog gate level netlist or an OA design database.
When you send data from FE to IOP to load into the SiP Layout environment, you can use
either a DEF file or an OA database. If you use a DEF file, you load it into IOP with the
loadDefFile command, which converts the DEF file to a Verilog file. The Verilog file, which
defines the logical connectivity in IOP, automatically loads, then the DEF file loads to include
any physical implementation details.
In Flow 2 (Figure 1-2,) a Verilog file exists for the IC, but no DEF file exists. SCM reads the
Verilog description of the IC, connects it logically to the system or package netlist, and then
passes it to SiP Layout. SiP Layout opens IOP loading the LEF files and the Verilog netlist.
You can initialize the physical IC in IOP and feed the data back to SiP Layout for the physical
floorplanning of the package.
LEF
You must have LEF files for any design flow in the SiP environment. The LEF files must
contain the technology information and the MACRO definition of all cells referenced in the
Verilog, DEF, or OA files.
In Sip Layout, you use the LEF files to create .ldf and .cml files. You load them with each
SiP Layout session before using IOP. Use the Setup – LEF Libraries command.
DEF
Currently, DEF is the recommended file format for transferring data between FE and IOP for
two reasons:
■ FE can write a DEF file stripped of its standard cells and nets. This results in a smaller
DEF file for use in IOP. In doing this, it also hides any IP implementations in the gate level
netlist.
■ FE reads the DEF file incrementally. So, when you complete an I/O plan in SiP Layout
and IOP, you can then send it back to FE for incremental reading into an existing IC
design.
Open Access
OA is the database for sharing information between SiP Layout and IOP. When you initially
import a die into the SiP environment, you can use either a DEF file or an OA database. If it
is a DEF file, IOP saves an OA database to disk. SiP Layout uses the OA database to create
an instance of the die in the package.
An OA database consists of multiple file and directory structures. A lib.defs file defines
the directory structures that make up the OA database. An example of a lib.defs file,
showing two libraries, is shown below:
DEFINE FEOAreflib FEOAreflib
ASSIGN FEOAreflib libMode shared
DEFINE assigned assigned
The first library, FEOAreflib, is the cell macro library. This includes I/O cells, bump cells,
hard macros, and the IC technology information. In this example, assigned represents the
IC design database. When assigned loads, it references the macro library FEOAreflib.
The OA libraries are structured in a lib-cell-view format. The FEOAreflib library contains a
cell for each macro in the library, and each cell will have a view, which is typically an abstract
view.
■ FEOAreflib
❑ ADDFX1
❍ abstract
❑ ADDFX2
❍ abstract
❑ AND2X2
❍ abstract
.
.
.
The design library has one cell and potentially multiple views.
■ assigned
❑ talon_chip
o layout
o sipTempView
When you make changes to the IC die database in IOP, you can update changes to the
package, update and exit, or discard changes and exit. If you update the changes to the
package, the tool saves a temporary OA view (sipTempView) to disk, and SiP Layout
imports those changes from the temporary OA database. Once you execute a Save
command from SiP Layout, the sipTempView replaces the original view (layout in the
example above). You can permanently save the changes in FE only by saving the design in
SiP Layout. If you exit without saving the design in SiP Layout, the tool discards the temporary
OA database and all changes.
Prototyping Floorplanning
I/O and Bump Placement
Design Viewer
Power Planning
FE RC Extraction
Block Implementation and Design Closure OpenAccess
Placement (placeDesign)
Signal Wire / Manual Editing
ECO Flat
AreaIO
Verify Geometry
RDL Routing
Low Power Design Power Route (Sroute)
Power domain creation
65nm and Design for Yield 65nm Rule Support (LEF Read)
Cross Probing
The highlighting of any net or pin that connects to a die in SiP Layout causes IOP to select
that net and pin. The selection of any net or pin that connects to a die in IOP causes SiP
Layout to highlight that net and pin.
Pin Swapping
Pin swapping is changing the assignment of logical nets to physical connect points with the
purpose of improving the routability of the design either in the package or die view. Swapping
pins in this context does not change the logical functionality of the design. The implication is
that if you swap the die-connect points of two nets in a package, their corresponding nets in
the co-design die also swap. The inverse is also true. If two die nets swap bumps, the
corresponding nets in the package also swap.
When you open a co-design die in an IOP window, IOP controls all edits performed on the
die. This means that you cannot perform pin swaps from the package view when the die is
open in IOP. When you close IOP, you can make pin swaps to the die from SiP Layout. These
swaps update in IOP the next time you open the tool.
Inside IOP
In a design that uses bumps for the die connect points, use the following steps to complete
pin swaps:
1. Select the bumps to swap.
At least one bump should have a net assignment.
2. Choose the Floorplan – Flipchip – Swap Signals command.
All pin swaps update to the package with either of the Update commands.
I/O Pads
There is no true pin swapping available when the die connect pad connects directly to an I/O
cell. This is typically the case in a wire bond design where the wire bond pad is an integral
part of the I/O cell. In this case, rather than swapping pins, you need to change the places of
the actual I/O cells in the die to have the same effect as a pin swap.
You can easily do this in IOP by selecting two I/Os, clicking the middle mouse button, and
running the swapinstances command in the console. This switches the placement of the
two I/O cells.
http://sourcelink.cadence.com/docs/files/Release_Info/Docs/soceUG/soceUG6.2.2/
ECOFlow.html#1059375
In the physical IC design tools, the designer’s only interest is the drawn dimensions of the die,
but when placing the die in the package, stacking die, or wire bonding a design, you must
know the dimensions of the physical die, and not just the drawn die.
The Add – Co-design Die command accounts for these factors. You enter both the scribe
lane width and the optical shrink values. When you place the die in the package, the tool adds
the scribe lane width to the die dimensions from the drawn die, then the die shrinks by the
given shrink value. SiP Layout always displays the actual die dimensions and IOP always
shows the drawn die dimensions.
A
I/O Planning Functionality Overview
This appendix provides a catalog of functions and utilities within the Cadence I/O Planner
(IOP) which are useful in the IC/package co-design flows.
Bump Assignment
I/O cells always have a pad signal assigned to them from the Verilog (OA) netlist that IOP
reads in when you load the design. Therefore, there will never be a situation in which you
assign nets from a bump to an I/O cell. You always assign bumps from the I/O cells to the
bumps. Choose Floorplan – Flip Chip – Assign Signals from the IOP menu. In the
Assign to Tiles/Bumps section of the dialog box, click Closest. Then click Apply.
RDL Routing
You can route nets connecting the I/O cells to the bumps with the command:
Route – Flip Chip – Signal
You can route power and ground nets with the command:
Route – Flip Chip – Power
B
Definition of Terms and Acronyms
The following list includes some of the terms used in this application note.
APD option XL
The Allegro Package Designer single die co-design product.
co-design die
A die that is concurrently designed with its end package to ensure that the combination
of die and package meets all design requirements, while at the same time minimizes
the overall cost of production. SiP and IC tools work together
die editor
An editor used to edit the placement of pins and tiles for standard dies, or gaining access
to the Cadence I/O Planner environment for editing co-design dies.
ICD
The IC Digital business unit of Cadence.
OpenAccess (OA)
An open source database format and schema that has been adopted by Cadence and
other companies for representation and interchange of IC tool data.
System-in-Package (SiP)
A new design fabric and paradigm for system design using multiple dies in a single
package.
.sip
The database file format used for storing the system-in-package information about the
co-design project under development.
SiP Layout
A System-in-Package design tool that uses IOP for co-design. Current marketing plans
for the SPB Release 15.7 include this in three possible license tiers of the cdnsip
executable, Cadence SiP Digital Architect GXL, Cadence SiP Digital Layout GXL and
Cadence SiP RF Layout GXL, as well as in one tier of the apd executable, namely
Allegro Package Designer XL. This capability existing in any of these products is
referred to as SiP Layout.
standard die
A die that has already been designed, such as memory chips from external vendors or
internal dies already in production. The standard die also refers to any die with fixed die
bumps that is not currently being designed along with the package. A standard die is
sometimes referred to as an off-the-shelf or third-party die.