TSMC PDK Usage Guide
TSMC PDK Usage Guide
An introduction on the
usage of TSMC process
design kits (PDK)
Release 0.1
Sep 2004
Copyright 2004, Taiwan Semiconductor Manufacturing Company, Ltd. All Rights Reserved.
No part of this publication may be reproduced in whole or in part by any means without prior
written consent.
DISCLAIMER
The information contained herein is provided by TSMC on an "AS IS" basis without any
warranty, and TSMC has no obligation to support or otherwise maintain the information.
TSMC disclaims any representation that the information does not infringe any intellectual
property rights or proprietary rights of any third parties. There are no other warranties given
by TSMC, whether express, implied or statutory, including, without limitation, implied
warranties of merchantability and fitness for a particular purpose.
STATEMENT OF USE
This information contains confidential and proprietary information of TSMC. No part of this
information may be reproduced, transmitted, transcribed, stored in a retrieval system, or
translated into any human or computer language, in any form or by any means, electronic,
mechanical, magnetic, optical, chemical, manual, or otherwise, without the prior written
permission of TSMC. This information was prepared for informational purpose and is for use
by TSMC's customers only. TSMC reserves the right to make changes in the information at
any time and without notice.
Table of Contents
z Chapter 1: Introduction
i
Chapter 1 Introduction
The major purpose of this document is to introduce the basic usage of a TSMC’s
PDK for those users who are completely new to TSMC PDK or never use
TSMC’s PDKs before as a reference. To ease the overall introduction, we use a
simple design as an example to go through the whole design flow: starting from
the schematic capture and ending at the physical verification and post-layout
simulation. Moreover, we divide the whole flow into several phases to match
general logic or Mix-signal design flows and they are “Schematic capture”, “Pre-
layout simulation”, “Layout creation”, “Physical verification” and “Post-layout
simulation”.
z Schematic capture
Environment setup
Creating a library
Creating a design
Creating a symbol
Creating a test fixture
z Pre-layout simulation
Using spectre for simulation
Using hspice for simulation
z Layout creation
Schematic-drive-layout
Components placement
Auto-route and manual route
z Physical verification
Physical verification using Assura
A. Assura DFII flow
B. Assura CDL flow
Physical verification using Calibre
A. Calibre CDL flow
B. Calibre GUI flow
1
TSMC PDK – April 2004
z Post-layout simulation
Simulating with the extracted netlist
Simulating with the extracted view
Each phase may contain various kinds of flows corresponding to different tools.
Users can choose those flows according to their needs. For example, in the pre-
layout simulation phase, two kinds of simulators can be chose to carry out the
simulation. You only need to choose one simulator for your simulation.
This document doesn’t focus on the tool usage. For the detail usage of the
related tools, please contact the tool vendors.
2
TSMC PDK – April 2004
Chapter 2 Schematic capture
After you have finished the installation of a TSMC’s PDK, we will start to create
a new design based on the installed PDK.
Environment setup
Before we start to create a new design, some environment setups should be done.
First, we have to set the environment variable of “CDS_Netlisting_Mode” to
“Analog”. This can be archived by the following UNIX command:
%mkdir ~/my_project
%cd ~/my_project
All the further designs created by users should be performed in this directory.
The next steps are to copy some necessary files from the PDK installed directory
to your project directory. These include copying the ‘display’ file and linking the
‘models’ and ‘stream’ directories and others to your project directory.
%cp <pdk_install_direcotry>/display.drf .
%ln –s <pdk_install_directory>/models .
%ln –s <pdk_install_directory>/stream .
%cp -f <pdk_install_directory>/assura_tech.lib . (For Assura tool)
%cp -rf <pdk_install_directory>/Assura . (For Assura tool)
%cp -rf <pdk_install_directory>/Calibre . (For Calibre tool)
The last step for environment setup is to create a “cds.lib” file in your project
directory. Users can use a text editor to add the following line into the “cds.lib”
file located in you project directory:
INCLUDE <pdk_install_directory>/cds.lib
Note:
3
TSMC PDK – April 2004
1. The installation procedures of a TSMC’s PDK can be found in the
document of “TSMC PDK reference manual ” released along with the
corresponding PDK.
Creating a Library
After completing the environment setup, we can start to create a new library. This
can be archive by using the command “File->New->Library” from either the CIW
(Command Interpreter Window) or the Library Manager and select the “Attach to
an existing techfile” option. When the Library Manager asked for the name of the
“Attach to Technology Library”, please select the name of PDK library that you
installed for this design. Here we have an example for TSMC 0.18um MM/RF
PDK (fig1~2).
FIG. 1
FIG. 2
4
TSMC PDK – April 2004
Creating a design
When the library creation is completed, we can now start to create our design
circuit under Cadence Composer environment. The basic steps to capture a new
schematic including: open a new schematic design, select and place components,
edit component properties, wire components…and so on.
From now on, we will use a two-stage invert (a buffer) as an example, which was
designed based on TSMC 0.18um MM/RF PDK, to continue the following
introductions in this document.
Creating a symbol
5
TSMC PDK – April 2004
FIG. 4 symbol for the buffer
The final step before we start the simulation is to create a test fixture for our
design. The creation of test fixture is similar to the creation of a design.
Furthermore, you also have to prepare the voltage source and determine the
output loading. Generally, a test fixture will consist of the following components:
a design (the buffer in our case), DC voltage source, ground, vdd, voltage
source( vdc/vpluse), and output loading. The test fixture that we used for our
design is namely ‘test_buffer2’ and can be seen in FIG5.
6
TSMC PDK – April 2004
FIG. 5 test fixture schematic for the buffer
7
TSMC PDK – April 2004
Chapter 3 Pre-layout simulation
Performing pre-simulation
After the creation of our design is completed, we have to verify the electrical
performance and the functionality of our design using a simulation tool. In this
chapter, we will have introductions on two simulators: Spectre and Hspice.
8
TSMC PDK – April 2004
In the Analog Artist window, there are many analysis options that you can
choose. Since we want to analysis the delay information (performance) of our
design, we choose the transient analysis for our design (Fig 7). Some designers
may want to see the OP point and they can also include the DC op point
analysis.
In addition to choosing the analysis type, we also need to select the nodes that we
want to observe as simulation results from the schematic view. In our test fixture,
we choose the “IN” and “OUT” nodes of our buffer circuit for the result browsing.
9
TSMC PDK – April 2004
3. Run simulation and observe the simulation results
To start the simulation, you can click “simulation->netlist and run” from the
Analog Artist menu banner. After the simulation is completed, the wave form
window appears. You can see the simulation result that corresponding to the
chose nodes (in step 2). In our case, the waveform of nodes “IN” and “OUT” of
our design circuit (buffer) is shown (Fig 9).
According to the waveform in Fig 9, we found that the functionality of this buffer
is correct and the performance of this buffer is as below (with 1pF load):
10
TSMC PDK – April 2004
Sometime, you may want to see more detail simulation results such as operating
points, DC voltages, and model parameters on the schematic of your design. You
can back annotate the simulation data to the schematic by choose “Results->
Annotate->…” from the menu banner of Artist simulation window. The available
choices of annotated data are “DC node voltages”, “DC operating points”,
“Transient node voltages”, ”Transient operating points”, “Model parameters”,
“Component parameters”…and so on. Here we select to back annotate the
“model parameters” inside our buffer circuit (Fig 10).
In addition to cover the typical case, we may sometime want to simulate our
design to cover the process variations in different corners. This can let us know
whether the circuit performance specifications will still meet even when the
process variation shift to different corner. Furthermore, this can also improve the
product yield of our design. In our case, we simulate our design in three different
11
TSMC PDK – April 2004
corners: the typical case, the fast_best case (all devices in FF) and slow_worst (all
devices in SS) case. By loading the well-defined PCF file released along with
TSMC’s PDK, you can find the corner analysis window as FIG 11.
After finished the corner analysis, the simulation waveforms of those inspect
nodes in different corners are shown in FIG 12. From Fig 12, we find that the
circuit performances of our circuit in different corners are as follows:
In slow_worst case:
In Fast_best case:
12
TSMC PDK – April 2004
FIG. 12 simulation waveform for corner analysis
13
TSMC PDK – April 2004
The first step to run the Hspice simulation is to obtain a hspice netlist. This can be
archived by “setup->Simulator/Directory/Host…” and set the simulator to
“hsipceS” (Fig 13).
After the previous works are all done, we can start to write out the hspice
simulation netlist from Artist by click “Simulation->Netlist->Create Final” in
Artist simulation window (Fig 14). The final simulation netlist window appeared
after the netlist transfer procedure completed. You can save the simulation netlist
from the simulation netlist window by click “File->Save As”. In our case, we
save the Hspice simulation netlist as “test_buffer.sp”.
After obtained the Hspice simulation netlist, we still need to add the information
that is need for later simulation into the netlist. The extra lines that we added into
our netlist includes model include section, and output control section (fig 15).
We can start to run the Hspice simulation under UNIX command prompt with the
netlist that we obtained from step 2.
%hspice test_buffer.sp
And the simulation result can be obtained (fig 15) after the simulation completed.
14
TSMC PDK – April 2004
FIG. 14 Write out hspice simulation netlist
15
TSMC PDK – April 2004
FIG. 16 Hspice simulation results
16
TSMC PDK – April 2004
Chapter 4 Layout creation
After completed the pre-layout simulation and make sure the functionality and the
circuit performance are all correct and in the design specifications, we can now
start to create the corresponding layout for our design. There are many ways to
create the layout including the tradition manual way and other automatic ways.
Generally, the tradition layout creation method is to draw the layer geometries
based on schematic manually, which is usually laboured and time-consuming. To
take the advantage of using a PDK, we use another more efficient way to create
the layout for our design. The layout creation procedures for our automatic way
are partitioned into three parts: “Schematic-Driven-Layout”, “Components
Placement” and “Auto route and Manual route”.
2. From the schematic menu select “Tools -> Design Synthesis -> Layout XL”
After selecting this option, a small dialog box will first open to let users select
the cell name and view name for the layout. Upon finished the selection of the
cell name and view name, a Virtuoso XL layout window popup for layout
generation.
17
TSMC PDK – April 2004
3. From the Virtuoso XL layout menu select “Design -> Gen from source …”
A layout generation options window appeared and prompts users to setup the
pin layers, pin width, pin height, boundary layer …and so on for layout
generation.
18
TSMC PDK – April 2004
After finished the selection of above information, some rectangles that
represent the transistors and I/O pins will show up in the bottom of the layout
window.
Components placement
The next step is to do the device placement. The only one thing that you need to
do is to place all the components and I/O pins in the layout window into the
design area (cell boundary). By selecting devices/IO pins and dragging them to
proper locations inside the design area, we can complete the component
placement. During the device movement and placement, the lines represent the
connections of select object to other objects will show up. This can help you to
decide where to properly locate the selected object (Fig 19).
19
TSMC PDK – April 2004
FIG. 19 Place all devices into design area in layout window
20
TSMC PDK – April 2004
FIG. 20 Setup for VCR
21
TSMC PDK – April 2004
If you don’t feel comfortable with the results from VCR, you can manually fix
the routing results in the layout window. For our design, the final layout after
manually fixed is shown in Fig 22.
22
TSMC PDK – April 2004
Chapter 5 Physical verification
After the layout creation is completed, we have to start the physical verification
to make sure this layout is DRC free and each device in the layout is completely
match to its corresponding component in original schematic. After that, the
parasitic extraction is also need to be performed for post-layout simulation to
make sure our design still work well after taking the parasitic R & C effects into
account. Generally, the physical verification procedures can be divided into three
parts: the design rule check (DRC), layout V.S. schematic check (LVS) and
parasitic extraction (RCX). Furthermore, based on the differences on running
methods and supported tools, they can be classified into different flows. In order
to satisfy most of users, TSMC’s PDK supports varied kinds of decks to be used
for different kinds of flows. Currently, the supported tools are Assura and Calibre,
and the supported flows are “Assura DFII flow”, “Assura CDL flow”, “Calibre
CDL flow” and “Calibre interactive flow”. In real design, users only need to
choose one of these physical verification flows and have no need to go through
all the flows.
23
TSMC PDK – April 2004
3. Click “OK” to run the Assura DRC and see the result. If the layout isn’t DRC
free, you have to manually re-edit the layout and re-run the DRC check to
make it DRC free.
After the layout has no DRC violations (DRC free), the next step is to run the
LVS check to make sure the layout is totally match to the schematic.
1. Click “Assura->Run LVS…” in layout window to invoke Assura LVS
graphic user interface.
2. Fill in the “Assura run directory” and select the “Technology” field to
“assura_tech” (Fig. 24) in Assura LVS window. You can also set the Assura
LVS switches and other parameters if needed.
3. Click “OK” to run the Assura LVS and see the result. If the layout isn’t
matched to schematic, you have to manually re-edit the layout and re-run the
LVS check to make the LVS result matched.
24
TSMC PDK – April 2004
FIG. 24 Assura LVS setup window
When the layout is DRC free and LVS clean, the next step is to perform the RC
extraction. This step is to prepare the layout extracted netlist for post-layout
simulation.
1. Click “Assura->Run RCX…” in layout window to invoke Assura RCX
graphic user interface.
2. Select “Output” to “Extracted View” in “setup” folder of Assura RCX
window to output extract result to “av_extracted” view (Fig 25).
3. In the “Extraction” folder of Assura RCX window, select the “extraction
mode” to “C only” (if you want to extract only C), set the “Name space” to
“Schematic Names” and fill in the “Ref Node”(here we use “gnd!”)(Fig 26).
4. Click “OK” to start the Assura RC extraction. After the RC extraction is
completed, a new view (“av_extracted” view, Fig 27) which contains not only
the original components but also the parasitic devices will be generated and
then can be used for post-layout simulation.
25
TSMC PDK – April 2004
FIG. 25 Setup folder of Assura RCX window
26
TSMC PDK – April 2004
FIG. 27 Assura av_extracted view
Prepare Data
Before starting the Assura CDL verification flow, users have to prepare the CDL
netlist and the GDS file.
2. Select the top cell name to your design, make sure the netlist mode is
“Analog”, and fill in the output file name of the netlist (Fig 28).
27
TSMC PDK – April 2004
3. If the “source_added” file (empty sub-circuit file) is provided along with
the LVS deck, you also have to attach this file to the output netlist file
(obtained from step #2).
2. Select the top cell name to your design, fill in the “layer map table” and the
output file name of the GDS file (Fig 29).
28
TSMC PDK – April 2004
Assura CDL DRC
After the GDS file is exported, you have to edit the Assura ASCII run specific
file (RSF) to specify the input data, output data and types of checks to be run in
Assura DRC check.
1. Edit Assura DRC RSF file to specify the necessary information (Fig 30).
2. Run Assura DRC checking in UNIX command prompt and check the results.
%asssura drc.rsf
3. If the GDS isn’t DRC free, you have to go back to fix you layout and re-
stream out the GDS for DRC check again.
When the GDS file is DRC free, you can continue to run the Assura CDL LVS.
1. Edit Assura LVS RSF file to specify the necessary information (Fig 31).
29
TSMC PDK – April 2004
FIG. 31 Edit Assura LVS RSF file
2. Run Assura LVS checking in UNIX command prompt and check the results.
%asssura lvs.rsf
3. If the GDS isn’t LVS clean, you have to go back to fix you layout and re-
stream out the GDS for LVS check again.
Currently, TSMC’s PDK doesn’t support the Assura RC extraction with CDL
flow.
30
TSMC PDK – April 2004
Physical verification using Calibre
In addition to support using Assura for physical verification, TSMC’s PDK also
supports using Calibre for physical verification. In this section, we will introduce
the “Calibre CDL flow” and “Calibre interactive flow” for Calibre users.
1. Edit the Calibre DRC deck and specify the GDS file name and top cell name
for the deck (Fig 32).
2. Check the switches in the deck and correctly set these switches if need.
3. Run Calibre CDL flow DRC in UNIX command prompt and check the DRC
results.
%calibre –drc –hier calibre.drc
4. If the layout isn’t DRC free, you have to fix all DRC violations, re-stream out
the GDS file and run the DRC check again.
When the DRC checking is completed and the layout is DRC free, the next step is
to perform the LVS checking.
1. Edit the Calibre LVS deck and specify the GDS file name, top cell name and
CDL netlist file for the deck (Fig 33).
2. Check the switches in the deck and correctly set these switches if need.
3. Run Calibre CDL flow LVS in UNIX command prompt and check the LVS
results.
%calibre –lvs –hier –spi layout.net calibre.drc
31
TSMC PDK – April 2004
4. If the layout isn’t LVS clean, you have to fix the layout, re-stream out the GDS
file and run the LVS check again.
32
TSMC PDK – April 2004
Calibre CDL RCX
After the layout is DRC free and LVS clean, the next step is to perform the RC
extraction. This step is to prepare the layout extracted netlist for post-layout
simulation.
1. Edit the Calibre RC deck and specify the GDS file name, top cell name and
CDL netlist file for the deck (Fig 34).
2. Check the switches in the deck and correctly set these switches if need.
3. Run Calibre CDL RCX in UNIX command prompt and obtain the extracted
netlist. (Use extract C only for illustration)
%calibre –xrc –phdb calibre.drc
%calibre –xrc –pdb –c calibre.drc
%calibre –xrc –fmt -c calibre.drc
33
TSMC PDK – April 2004
Calibre GUI flow (with Calibre-view)
If Calibre users don’t like the CDL flow, TSMC’s PDK also support the Calibre
GUI mode flow which integrate the Calibre interface into Cadence Virtuoso
environment.
Calibre GUI mode flow is working under Cadence Virtuoso environment and its
DRC verification procedures are as follows:
1. Click “Calibre->Run DRC” in layout window to invoke Calibre DRC graphic
user interface.
2. Specify the “Calibre-DRC rules file” and the “Primary cell” in Calibre
interactive-DRC window (Fig 35). If you need to change some DRC switches,
you have to edit the Calibre DRC deck first.
3. Click “Run DRC” button to start the Calibre DRC verification and check the
result in RVE.
4. If the layout isn’t DRC free, you have to re-edit the layout and re-run the DRC
check to make it DRC free.
34
TSMC PDK – April 2004
Calibre GUI LVS
After the layout has no DRC violations, the next step is to run the LVS check to
make sure the layout is completely match to the schematic.
1. If the “source_added” file (empty sub-circuit file) is provided along with the
LVS deck, you have to specify this file as an include file for netlist export by
click “Calibre->Setup->Netlist Export…”(fig 36).
4. Click “OK” to run the Calibre GUI LVS and see the result. If the layout isn’t
matched to schematic, you have to fix the layout and re-run the LVS check to
make the LVS result matched.
35
TSMC PDK – April 2004
Calibre GUI RCX (with Calibre-view)
When the layout is verified to be DRC free and LVS clean, the next step is to
perform the RC extraction. In addition to directly obtain the ascii extracted netlist
file from Calibre GUI mode extraction (like Calibre CDL RCX), you can also
choose to obtain an extracted view ‘calibre-view’ which is somewhat like the
Assura av_extracted view. In this calibre-view, you can see not only the original
components and but also the parasitic devices and their connectivity. Furthermore,
this calibre-view can also be used in Cadence Analog Artist environment for
post-layout simulation.
2. Specify the “Calibre-PEX rules file“, working directory and “Primary cell” in
Calibre RCX window. If you need to change some RCX switches, you have to
edit the Calibre RCX deck first.
36
TSMC PDK – April 2004
4. Click “OK” to run the Calibre GUI RC extraction. After the extraction run is
completed, a calibre view setup window pops up. Specify the “Cellmap File”,
“Magnify symbols by” and make sure the “Copy schematic properties” button
is on (fig 38).
5. Click “OK” in the Calibre view setup window to create the Calibre view. The
generated Calibre-view can be seen in Fig 39.
37
TSMC PDK – April 2004
Chapter 6 Post-layout
simulation
When accomplished the physical verification, the last step to tape-out is to
perform the post-layout simulation on the extracted netlist/view. During the post-
layout simulation, not only the original components but also the parasitic R & C
(depends on what you have extracted in RCX stage) of the interconnections are
taking into consideration. Therefore, we can say that the post-layout simulation
result is more approach to the real silicon comparing with the original pre-layout
simulation result. Furthermore, base on the difference of RC extraction flows you
chose you would run your post-layout simulation in different ways.
38
TSMC PDK – April 2004
FIG. 40 Post-layout simulation result for extracted netlist
1. Create a config view for the test fixture schematic (the ‘test_buffer2’ in our
example) and switch the av_extracted (or calibre) view of our design
(buffer2) for the configuration (Fig 41).
2. Open the Analog Artist environment and use the config view of the test
fixture for simulation (fig 42). You can also output the simulation netlist to
make sure the ‘av_extracted’ view of our design in the configuration file is
used for simulation rather then the ‘schematic’ view.
39
TSMC PDK – April 2004
FIG. 41 switch design view to ‘av_extracted’ view
40
TSMC PDK – April 2004
41
TSMC PDK – April 2004
42