Chapter 6 Soc Encounter

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

Cell-Based IC Physical Design and Verification

- SOC Encounter

CIC 2006/02

Class Schedule
Day1

Day2

Design Flow Over View


Prepare Data
Getting Started
Importing Design
Specify Floorplan
Power Planning
Placement
Synthesize Clock Tree

Timing Analysis
Trial Route
Power Analysis
SRoute
NanoRoute
Fill Filler
Output Data
DRC
LVS
extraction/nanosim
2

Chapter1

Cell-Based Physical Design SOC Encounter 4.2

Cell-Based Design Flow


Tape out

Verilog
VHDL

Post layout simulation


synthesis
DRC LVS
Gate level
netlist

Place & Route

GDSII

Routed
design

Add LVS/Nanosim text


Replace layout
4

SOC Encounter P&R flow


Netlist (verilog)
Timing constraints (sdc)

IO,P/G Placement

IO constraints

Specify floorplan
Amoeba Placement
Timing Analysis
Pre-CTS Optimization
Power Planning
Power Analysis
Clock Tree Synthesis
Timing Analysis
Post-CTS Optimization
Power Route
Output GDS, Netlist,Spef,DEF
SI Driven Route
Timing/SI Analysis

IO, P/G Placement

Corner1

I1

VDD

O1

Corner2

I2

O2

IOVDD

IOVSS

I3

O3

Corner3

I4

VSS

O4

Corner4
6

Specify Floorplan

Hight

Width

Floorplan

VDD

I1

O1

O2

I2

M2
IOVDD

IOVSS

M1

M3
O3

I3

I4

VSS

O4
8

Amoeba Placement

Power Planning

10

Clock Tree Synthesis

D
D

Q
D

Q
D

D
D

Q
D

Q
D

Q
D

Q
D

CLK

Q
D

CLK

Q
D

Q
Q
D

11

Power Analysis

12

Power Route

13

Add IO Filler

14

Routing

15

Prepare Data
Library

Physical Library (LEF)


Timing Library (LIB)
Capacitance Table
Celtic Library
FireIce/Voltage Storm Library

User Data
Gate-Level netlist (verilog)
SDC constraints
IO constraint
16

LEF Format
-- Process Technology
Layers

Design Rule

Net width
Net spacing
Contact Area
Enclosure
Metal1
Wide metal
Via1
slot
Metal2
Antenna
Current density
POLY

Parasitic
Resistance
Capacitance

17

LEF Format
-- Process Technology :
Layer define
Wide metal spacing
width

Layer Metal1
TYPE ROUTING ;
WIDTH 0.28 ;
MAXWIDTH 8 ;
AREA 0.202 ;
SPACING 0.28 ;
spacing
SPACING 0.6 RANGE 10.0 10000.0 ;
PITCH 0.66 ;
DIRECTION VERTICAL ;
THICKNESS 0.26 ;
ANTENNACUMDIFFAREARATIO 5496 ;
RESISTANCE RPERSQ 1.0e-01 ;
CAPACITANCE CPERSQDIST 1.11e-04 ;
EDGECAPACITANCE 9.1e-05 ;
END Metal1

Wide metal

18

LEF Format
-- APR technology
Unit
Site
Routing pitch
Default direction
Via rule

19

LEF Format
-- APR technology : SITE
The Placement site give the placement grid of a family of
macros

a row

a site

20

Row Based PR
VDD

VSS

VDD

VSS

21

LEF Format
-- APR technology :
routing pitch , default direction

metal1 routing pitch


via
metal2 routing pitch

Horizontal Vertical
routing
routing
Metal1
Metal3
Metal5

Metal2
Metal4
Metal6
22

LEF Format
-- APR technology : via generate
To connect wide metal , create a via array to
reduce via resistance
Defines formulas for generating via arrays
Layer Metal1
Direction HORIZONTAL
OVERHANG 0.2
Layer Metal2
Direction VERTICAL
OVERHANG 0.2
Layer Via1
RECT 0.14 0.14 0.14 0.14
SPACING 0.56 BY 0.56

Default via

Generated via

23

LEF Format
-- APR technology : via stack

Without via stack

With via stack

Higher density routing


Easier usage of upper layer
Must Follow minimum area rule
24

LEF Format
-- APR technology : Top of Stack Via
Metal3
Via23_TOS
Via12
Metal1

Meet minimum area rule

25

LEF Format
-- APR technology : Double Cut Via

Metal2
Double cut Via12
Metal1

26

LEF Format
-- APR technology : SameNet Spacing
SPACING
SAMENET Metal1 Metal1 0.23 ;
SAMENET Metal2 Metal2 0.28 STACK ;
SAMENET Metal3 Metal3 0.28 ;
SAMENET VIA12 VIA12 0.26 ;
SAMENET VIA23 VIA23 0.26 ;
SAMENET VIA12 VIA23 0.0 STACK ;
END SPACING

VIA12 and VIA23


Metal1

Metal3

VIA12 and VIA23 allow stack


Metal1
0.23

same net spacing rule

27

LEF Format
-- APR technology : Physical Macros
Define physical data for

Standard cells
I/O pads
Memories
other hard macros

describe abstract shape

Size
Class
Pins
Obstructions
28

LEF Format
-- APR technology : Physical Macros cont.
VDD

VSS

MACRO ADD1
CLASS CORE ;
FOREIGN ADD1 0.0 0.0 ;
ORIGEN 0.0 0.0 ;
LEQ ADD ;
SIZE 19.8 BY 6.4 ;
SYMMETRY x y ;
SITE coresite ;
PIN A
DIRECTION INPUT ;
PORT
LAYER Metal1 ;
RECT 19.2 8.2 19.5 10.3 ;

END
END A
PIN B
..
END B
OBS

END
END ADD1

29

LIB Format
Operating condition
slow, fast, typical

Pin type

input/output/inout
function
data/clock
capacitance

Path delay
Timing constraint
setup, hold, mpwh, mpwl, recovery
30

CeltIC Library
cdB model
The cdB noise library structure
SPICE Transistor Model
Noise Data for Cell 1
.subckt Transistor Description for Cell 1

Noise Data for Cell N


.subckt Transistor Description for Cell N
31

CeltIC Library
ECHO model
The UDN has pin caps, input noise threshold, output drive strength ,
and propagated noise to inject into the output driver

UDN

32

FireIce/Voltage Storm Library


Execute
TimingFire&Ice Extract RC
GenLib
PowerRun VoltageStorm
Gen Lib

Require
All lef fie
lefdef.layermap
9 lef &ICT layer mapping
9 gds &ICT layer mapping

fireice technology file


9 process and layer information
33

FireIce/Voltage Storm Library

lefdef.layermap
#type
metal
metal
metal
metal
via
via
via

layer_ict
METAL_1
METAL_2
METAL_3
METAL_4
VIA_1
VIA_2
VIA_3

lefdef
lefdef
lefdef
lefdef
lefdef
lefdef
lefdef
lefdef

layer_lef
METAL1
METAL2
METAL3
METAL4
VIA12
VIA23
VIA34

34

gate-level netlist
If designing a chip , IO pads , power pads and Corner
pads should be added before the netlist is imported.
Make sure that there is no assign statement and no
*cell* cell name in the netlist.
Use the synthesis command below to remove assign statement.
set_boundary_optimization
Use the synthesis commands below to remove *cell* cell name
define_name_rules name_rule map {{\\*cell\\* cell}}
change_names hierarchy output name_rule

35

SDC constraint
Clock constraints
Input delay / Input drive
Output delay/ Output drive
False path
Multicycle path

36

SDC constraint
-- Create Clock
create_clock [-name clock_name]
[-period period_value]
[-waveform edge_list]
[-add]
[sources]
20
I_CLK
10

CHIP

create_clock name CLK1 period 20 waveform {0 10} [get_ports I_CLK]


37

SDC constraint
-- create_generated_clock

I_CLK

create_generated_clock [-add]
[-master_clock]
Top
[-name clock_name]
[-source source_pin]
[-multiply_by mult]
[-divide_by div]
[-duty_cycle percent]
D QN
[-neg]
div_clk
[-edges edge_list]
[-edge_shift edge_shift_list]
clock_root_list

create_generated_clock name CLK2 source [get_ports I_CLK] divide_by 2 [get_pins DF/QN]


38

SDC constraint
-- set_clock_latency
set_clock_latency [-source]
[-early | -late]
[-min | -max]
latency
pin_or_clock_list

set_clock_latency 2 [get_clocks {CLK1}]


39

SDC constraint
-- set_clock_uncertainty
set_clock_uncertainty
[-setup | -hold]
[-from clksig_from_list]
[-to clksig_to_list]
[-rise | -fall]
float
pin_or_clock_list

set_clock_uncertainty 0.5 [get_clocks {CLK1}]


40

SDC constraint
--set_input_delay

CLK1
delay
In1 .. In7
In1
In2
: Design
:
I_CLK

set_input_delay delay_value
[-min] [-max]
[-rise] [-fall]
[-clock clock_name]
[-clock_fall]
[-add_delay]
[-network_latency_included]
[-source_latency_included]
port_pin_list

set_input_delay 1 clock [get_clocks {CLK1}] [getports {In1}]


41

SDC constraint
--set_output_delay

CLK1
delay
Out1
Out1
:
Design
:
CLK1

CLK1

set_output_delay delay_value
[-min] [-max]
[-rise] [-fall]
[-clock clock_name]
[-add_delay]
[-network_latency_included]
[-source_latency_included]
port_pin_list

set_output_delay 1 clock [get_clocks {CLK1}] [getports {Out1}]


42

SDC constraint
--set_drive
5K
In1

3,2,4,3
In2

In1

In2

set_drive [-min] [-max]


[-rise] [-fall]
drive_strength
port_list

rise_min, rise_max, fall_min, fall_max


set_drive 1 [get_ports {In1}]

43

SDC constraint
--set_load

Out1

Out2

5pf

4~5pf

set_load [-min] [-max]


[-pin_load]
[-wire_load]
load_value
port_list

set_load 1 [get_ports {Out1}]

44

SDC constraint
--set_false_path
set_false_path [{-from | -rise_from | -fall_from} pin_list]
[{-through | -rise_through | -fall_through} pin_list]
[{-to | -rise_to | -fall_to} pin_list]
[-reset_path]
[-hold | -setup]

set_false_path from {A}

45

SDC constraint
--set_multicycle_path
set_multicycle_path {-hold | -setup}
{-start | -end}
[-reset_path]
[{-from | -rise_from | -fall_from} pin_list]
[{-through | -rise_through | -fall_through} pin_list]
[{-to | -rise_to | -fall_to} pin_list]

set_multicycle_path 2 from {A} to {B}

46

Static Timing Analysis


Main steps of STA
Break the design into sets of timing paths
Calculate the delay of each path
Check all path delays to see if the given timing constraints are met

Four types of paths


PI
Start Point

Combinational Logic

End Point
PO
47

Static Timing Analysis


AT=2

AT=5

AT=2

AT=5

3
1

2
1

3
2

3
1

AT=2
RAT=5

3
1
AT=5
RAT=4

AT=6
RAT=5

2
1
3
1

Path-based:
RAT=10

AT=7
RAT=7

9
10
10
11

(OK)
(OK)
(OK)
(OK)
(Fail)
(OK)

Block-based:
3
2

AT=9
RAT=8

2+2+3 = 7
2+3+1+3 =
2+3+3+2 =
5+1+1+3 =
5+1+3+2 =
5+1+2 = 8

RAT=10
AT=11
RAT=10

Critical path is determined


as collection of gates with
the same, negative slack:
In our case, we see one
critical path with slack = -1
48

Static Timing Analysis


Cell Delay
Cell Delay

Dcell(I2) = f(Dtransition(I1), Ceq)

Transition Delay

Dtransistion(I2) = g(Dtransition(I1), Ceq)

Output
Capacitance

Input Transition
0

0.5

0.1

0.123

0.234

0.456

0.2

0.222

0.432

0.801

Vin
I1
I2
Dtransition(I1)

index1: input transition


Index2: output capacitance

Dc Vout Dtransition(I2)
I3

Req

Dcell(I2)

Ceq

49

Static Timing Analysis


Setup time
To meet the setup time requirement:
Trequire >= Tarrival
Reg to Reg
Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH
Trequire = Tclk2- TDFF2(setup)
Clk_source
Tslack = Trequire- Tarrival
clk1

TDFF1+Tpath
Tarrival
clk2

Tsetup
Tslack
Trequire

50

Static Timing Analysis


Setup time
PI to Reg
Tarrival = TPI(delay)+ TPATH
Trequire = Tclk1- TDFF1(setup)
Tslack = Trequire- Tarrival

51

Static Timing Analysis


Setup time
Reg to PO
Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH
Trequire = Tcycle- TPO(output delay)
Tslack = Trequire- Tarrival

52

Static Timing Analysis


Setup time
PI to PO
Tarrival = TPI(delay)+ TPATH
Trequire = Tcycle- TPO(output delay)
Tslack = Trequire- Tarrival
Clk_source

TPI+Tpath
Tarrival
TPO(output delay)
Tslack
Trequire

Use set_max_delay or set_min_delay to overwrite STA constraint


53

Static Timing Analysis


hold time
To meet the hold time requirement:
Trequire <= Tarrival
Reg to Reg
Tarrival = Tclk1+ TDFF1(clk->Q)+TPATH
Trequire = Tclk2+ TDFF2(hold)
Clk_source
Tslack = Tarrival-Trequire
clk1
TDFF1+Tpath

clk2
Thold
Tslack
Trequire
Tarrival

54

Static Timing Analysis


hold time

PI to Reg
Tarrival = TPI(delay)+ TPATH
Trequire = Tclk+ TDFF(hold)
Tslack = Tarrival-Trequire

Reg to PO
Tarrival = Tclk+ TDFF(clk->Q)+TPATH
Trequire = - TPO(output delay)
Tslack = Tarrival-Trequire

PI to PO
Tarrival = TPI(delay)+ TPATH
Trequire = - TPO(output delay)
Tslack = Tarrival-Trequire
55

Timing exception: False path


Why are there false path constraints in a design?
A path may exist in the circuit but never be used in its normal
functional operation
A functional path may exist but the timing is very slow or irrelevant
A block may be reused and certain signal functions are no longer
required
A path may exist in the circuit but no combination of input vectors may
ever exercise it
A combinational loop exists in the design that needs to be broken

56

Timing exception: multi-cycle path


Multicycle paths occur because the designer knows that the
particular logic function will not be used till a later cycle

57

IO constraint
Create an I/O assignment file manualy using the following template:

Version: 1
MicronPerUserUnit: value
Pin: pinName side |corner
Pad: padInstanceName side|corner [cellName]
Offset: length
Skip: length
Spacing: length
Keepclear: side offset1 offset2

58

IO constraint cont.
PAD_CLK

PAD_HALT

PAD_IOVDD1

PAD_IOVSS1

Version: 1
Pad: CORNER0 NW PCORNERDGZ
Pad: PAD_CLK N
Pad: PAD_HALT N
Pad: CORNER1 NE PCORNERDGZ
Pad: PAD_X1
W
Pad: PAD_X2
W
Pad: CORNER2 SW PCORNERDGZ
Pad: PAD_IOVDD1 S PVDD2DGZ
Pad: PAD_IOVSS1 S PVSS2DGZ
Pad: CORNER3 SE PCORNERDGZ
Pad: PAD_VDD1 E PVDD1DGZ
Pad: PAD_VSS1 E PVSS2DGZ

59

SSO Consideration
SSO
Simultaneously Switch Outputs

SSN
The noise produced by SSO buffers

DI
maximum number of copies for one specific kind of I/O pad
switching from high to low simultaneously without making
ground voltage level higher than 0.8 volt for one ground pad

DF
Drive Factor, DF = 1/DI

SDF
Sum of Drive Factor

60

SSO Consideration cont.


Parameter of DF

operating condition
package inductance
slew-rate control IO
IO type with different drive strength

In SSO case
Required number of ground pads = SDF
Required number of power pads = SDF/1.1

Non SSO case (suggest)


Required number of ground pads = SDF/1.5
Required number of power pads = SDF/1.6
61

SDF Example
IO Type

2mA

4mA

8mA

12mA

16mA

24mA

DF Value

0.02

0.03

0.09

0.18

0.3

0.56

If a design has 20 PDB02DGZ(2mA), 10


PDD16DGZ(16mA). then
SDF = 20 x 0.02 + 10 x 0.3 = 3.4
In SSO case,
number of VSS pad = 3.4 4
number of VDD pad = 3.4/1.1 = 3.09 4
62

Tips to Reduce the Power/Ground Bounce


Dont use stronger output buffers than what is necessary
Use slew-rate controlled outputs
Place power pad near the middle of the output buffer
Place noise sensitive I/O pads away from SSO I/Os
Place VDD and VSS pads next to clock input buffer
Consider using double bonding on the same power pad to
reduce inductance

63

Cadence On-Line document


unix% /usr/cadence/SOC/cur/tools/bin/cdsdoc &
unix% /usr/cadence/IC/cur/tools/bin/cdsdoc &
unix% /usr/cadence/LDV/cur/tools/bin/cdsdoc &
..
html browser must be installed
do not set the proxy in html browser

64

Getting Started
Source the encounter environment:
unix% source /usr/cadence/cic_setup/soc.csh

Invoke soc encounter :


unix% encounter

Do not run in background mode. Because the terminal become the


interface of command input while running soc encounter.
The Encounter reads the following initialization files:
$ENCOUNTER/etc/enc.tcl
./enc.tcl
./enc.pref.tcl

Log file:
encounter.log*
encounter.cmd*
65

GUI
menus
design views

tool widgets

switch bar

design display area

display control

name of
selected
object

design views

auto query

cursor coordinates

66

Tool Wedgits

Design Import

Zoom
In/Out

Fit

Hierarchy
Zoom
Previous Down/Up

Zoom
Select

Redraw

Calculate
Attribute Xwindow
Fence
Editor dump/undump
Density

Undo/Redo Design
Browser Summary Report

67

Design Views
FloorplanView
displays the hierarchical module and block
guides,connection flight lines and floorplan objects

Amoeba View
display the outline of modules after placement

Placement View
display the detailed placements of cells, blocks.

68

Display Control
Select Bar

69

Common Used Bindkeys


Key

Action

Key

Action

Edit attribute

space

Select Next

Fits display

popup Edit

Zoom in

editTrim

Zoom out

0-9

toggle layer[0-9] visibility

Arrows

pans design area in the


direction of the arrow

h/H

hierarchy up/down

clear Drc

Escape
K

Cancel
Removes all rulers

Looking for more bindkey:


Design->Preference, Binding Key
70

Import Design

9
DesignDesign Import

Max Timing Libraries


containing worst-case conditions for
setup-time analysis

Min Timing Libraries

containing best-case conditions for


hold-time analysis

Common Timing Libraries


used in both setup and hold analysis

IO Assignment File:

9
9

get a IO assignment template:


DesignSaveI/O File

9
71

Import Design -- Timing


Default Delay Pin Limit:
Nets with terminal counts greater than
the specified value are assigned the
default net delay and net load entries.

Default Net Delay:


Set the delay values for a net that
meets the pin limit default.

Default Net Load:


Set the load for a net that meets the
pin limit default.

Input Transition Delay:


Set the Primary inputs and clock nets.
72

Import Design -- Power


Specify the names of Power Nets and Ground Nets

9
9

73

Import Design IPO/CTS

9
9
9
9

74

Import Design IPO/CTS


Buffer Name/Footprint:
specifies the buffer cell family to be inserted or swapped.
required to run IPO and TD placement.
Footprint Example:

Delay Name/Footprint:
required to run a fix hold time violation

Inverter Name/Footprint:
required to run IPO and TD placement.

Get footprint of library cells by:


TimingReportCell Footprint

For Cells:
BUFXL
BUFX1
BUFX2
BUFX3
BUFX4
BUFX8
BUFX12
BUFX16
BUFX20
Footprint : buf
75

Import Design -- Power

9
9
9
9

76

Global Net Connection


Floorplan Gloval Net Connections

77

Specify Floorplan

9
9

FloorplanSpecify Floorplan

9
9

9
9

9
9

78

Specify Floorplan Doube back rows

Double-back rows:

Row Spacing > 0

Row Spacing = 0

79

Core Limit, I/O Limnt

80

Place Blocks
FloorplanPlace Blocks/ModulesPlace

automatic place blocks ( blackboxes


and partitions) and hard macros at the
top-level design.
Block halo
Specifies the minimum amount of
space around blocks that is preserved
for routing.

81

Manually Place Block

Move/Resize/Reshape floorplan object.


Use functions in : FloorplanEdit Floorplan to
edit floorplan.

82

Add Halo To Block


FloorplanEdit Block Halo

Prevent the placement of blocks and standard cells in order to reduce


congestion around a block.

Top
Left

9
9
9
9

Right

Bottom

83

Block Placement
Flow step
I/O pre-placed
Run quick block placement
Throw away standard cell
placement
Manually fit blocks

Block place issue


power issue
noise issue
route issue
84

Block Placement
Preserve enough power pad
Create power rings around block
Follow default routing direction rule
Reserve a rounded core row area for placer

block

Default direction
85

Power Planning: Add Rings


FloorplanCustom Power PlanningAddRings

86

Power Planning: Add Rings

Use wire group to avoid


slot DRC error

9
9
9

87

Power Planning: Wire Group


9Use wire group
no interleaving
9number of bits = 2

9Use wire group


9interleaving
9number of bits = 2

88

Power Planning: Block Ring

89

Power Planning: Block Ring cont.

90

Power Planning: Block Ring cont.

Block A

Block B

Block C

Without shared ring edges

Block A

Block B

Block C

With shared ring edges

91

Power Planning: Add Stripes

9
9

92

Power Planning: Add Stripes


9
9
9
9
9

9
93

Power Planning:
Add Stripes
9
9
9

crossover
via array

94

Edit Route

Duplicate wire

Change layer

Fix wire wider than max width

Split wire Trim wire

Change width

Merge wire

Clear DRC markers

Delete wire

95

Edit Route cont.

Trim wire

Fix wire wider


than max width

96

Edit Route cont.


Move Wire
Add Wire

Cut Wire
Stretch Wire

97

Specify Scan Chain


encounter > specifyScanChain scanChainName
start {ftname | instPinName}
stop {ftname | instPinName}
Specifies a scan chain in a design. The actual tracing of the scan chain
is performed by the scanTrace or scanReorder command
ftname
The design input/output pin name

instPinName
The design instance input/output pin name

98

Scan Chain Reorder

SCAN IN

D
D

Q
D

Q
D

Q
D

Q
D

D
D

SCAN OUT

Q
D

SCAN IN
D

D
D

SCAN OUT

Q
D

Q
Q
D

99

Placement
PlacePlace
Prototyping : Runs quickly, but components may not be placed at legal
location.
Timing Driven:
Build timing graph before place.
meeting setup timing constraints
with routability.
Limited IPO by
upsizeing/downsizing instances.

Reorder Scan Connection

9
9

nets connected to either the


scan-in or scan-out are ignored.

Check placement after placed


placeCheck Placement

100

Floorplan Purposes
Develop early physical layout to ensure design objective can be
archived

Minimum area for low cost


Minimum congestion for design routable
Estimate parasitic for delay calculation
Analysis power for reliability

gain early visibility into implementation issues

101

Difference Floorplan
Difference Performance

102

Wire Load After Placement

Logical

wire load after placement


103

Module Constraint

Soft Guide
Guide
Region
Fence

Soft Guide

Guide

Region

Fence

104

Guide , Region, Fence


Placement constraint
Create guide for timing issue
A critical path should not through
two different modules
The more region, the more
complicated floorplanning

105

Add Tiehi/Tielo cell


Tiehi/Tielo cell connect tiehi/tielo net to supply voltage or
ground with resister
Tiehi/Tielo cell is added for ESD protection.
Set add tiehi/tielo cell mode:
encounter> setTieHiLoMode maxFanOut #num maxDistance #num

PlaceTieHiLoAdd TieHiLo

106

Clock Problem
Clock problem

Heavy clock net loading


Long clock insertion delay
Clock skew
Skew across clocks
Clock to signal coupling effect
Clock is power hungry
Electromigration on clock net

Clock is one of the most important treasure in a chip, do


not take it as other use.
107

Clock Tree Topology

108

Synthesize Clock Tree


Create Clock Tree Spec
clock spec

Specify Clock Tree


Synthesis Clock Tree

Modify

netlist
synthesis report
clock nets
routing guide

Display Clock Tree

109

Create Clock Tree Spec.


ClockCreate Clock Tree Spec

9
9
9

110

CTS
CTS traces the clock starting from a root pin, and stops at:

A clock pin
A D-input pin
An instance without a timing arc
A user-specified leaf pin or excluded pin

Write a CTS spec. template:


specifyClockTree -template

111

CTS spec.
A CTS spec. contain the following information.

Timing constraint file (optional)


Naming attributes (optional)
Macro model data (optional)
Clock grouping data (optional)
Attributes used by NanoRoute routing solution (optional)
Requirement for manual CTS or automatic CTS

112

CTS spec.
--Naming Attributes Section
TimingConstraintFile filename
define a timing constraint file for use during CTS

NameDelimiter delimiter
name delimiter used when inserting buffers and updating clock
root and net names.
NameDelimiter # create names clk##L3#I2
default clk__L3_I2

UseSingleDelim YES|NO
YES clk_L3_I2
NO clk__L3_I2 (default)
113

CTS Spec.
-- NanoRoute Attribute Section
RouteTypeName name
RouteTypeName CK1

END

NonDefaultRule ruleName
Specify LEF NONDEFAULTRULE to be used

PreferredExtraSpace [0-3]
add space around clock wires

Shielding PGNetName
Defines the power and ground net names
114

CTS Spec.
-- Macro Model Data Section
-- Clock Grouping Section
MacroModel
MacroModel port R64x16/clk 90ps 80ps 90ps 80ps 17pf
MacroModel pin ram1/clk 90ps 80ps 90ps 80ps 17pf
delay_and_capacitance_value:
maxRise minRise maxFall minFall inputCap

ClkGroup
Specifies tow or more clock domains for which you want CTS
to balance the skew.
ClkGroup
+clockRootPinName1
+clockRootPinName2
..
115

CTS Spec.
--Manually Define Clock Tree Topology
ClockNetName netName
LevelNumber number
Specify the clock tree level number

LevelSpec levelNumber numberOfBuffers bufferType


levelNumber
9 Specify the level number in the clock tree

numberOfBuffer
9 the total number of buffers CTS should allow on the specified level

Example:
LevelSpec 1 2 CLKBUFX2
LevelSpec 2 2 CLKBUFX2

End
116

CTS Spec.
-- Automatic Gated CTS Section
AutoCTSRootPin clockRootPinName
MaxDelay number{ns|ps}
MinDelay number{ns|ps}
SinkMaxTran number{ns|ps}
maximum input transition time for sinks(clock pins)

BufMaxTran number{ns|ps}
maximum input transition time for buffers (defalut 400)

MaxSkew number{ns|ps}

117

CTS Spec.
-- Automatic Gated CTS Section cont.
NoGating {rising|falling|NO}
rising : stops tracing through a gate(include buffers and inverters) and
treats the gate as a rising-edge-triggered flip-flop clock pin.
falling: stops tracing through a gate(include buffers and inverters) and
treats the gate as a falling-edge-triggered flip-flop clock pin.
No: Allows CTS to trace through clock gating logic. (default)

AddDriverCell driver_cell_name
Place a driver cell at the cloest possible
location to the clock port location .

118

CTS Spec.
-- Automatic Gated CTS Section cont.
MaxDepth number
RouteType routeTypeName
RouteClkNet YES|NO
Specifies whether CTS routes clock nets.

PostOpt YES|NO
whether CTS resizes buffers of inverters , refines placement,and
corrects routing for signal and clock wires.
default YES

Buffer cell1 cell2 cell3


Specifies the names of buffer cells to use during CTS.
119

CTS Spec.
-- Automatic Gated CTS Section cont.
LeafPin
+ pinName rising|falling
+
Mark the pin as a leaf pin for non-clock-type instances.
LeafPin
+ instance1/A rising
+ instance2/A rising
A

LeafPort
+ portName rising|falling
+

Mark the port as a leaf port for non-clock-type instances


120

CTS Spec.
-- Automatic Gated CTS Section cont.
ExcludedPin
+ pinName
+ ..
ExcludedPort
+ portName
+

Treats the port as a non-leaf port, and prevents tracing and skew
analysis of the pin.

121

CTS Spec.
-- Automatic Gated CTS Section cont.
ThroughPin
+ pinName
+ ..

Traces through the pin, even if the pin is a clock pin

PreservePin
+ inputPinName
+ .

Preserve

Preserve the netlist for the pin and pins below the pin in the
clock tree.
122

CTS Spec.
-- Automatic Gated CTS Section cont.
DefaultMaxCap capvalue
CTS adheres to the following priority when using maximum
capacitance value:
9 MaxCap statements in the clock tree specification file
9 DefaultMaxCap statement in the clock tree specification file
9 Maximum capacitance values in the SDC file
9 maximum capacitance values in the .lib file

MaxCap
+ bufferName1 capValue1{pf|ff}
+ bufferName2 capValue2{pf|ff}
+ ..
Buffer should be inserted if the given capacitance value is exceeded
123

Mapping from sdc to clock tree spec

Timing Constraints

Clock Tree Specs

creat_clock

AutoCTSRootPin / ClkGroup

create_generated_clock

ThroughPin

set_clock_latency

Maxdelay

set_clock_uncertainty

Maxskew

set_clock_transition

BufMaxTran / SinkMaxTran

124

Synthesize Clock Tree


ClockSynthesize Clock Tree

Reconvergence clock

Crossover clock
125

Clock Synthesis report


Summary report and detail report

number of sub trees


rise/fall insertion delay
trigger edge skew
rise/fall skew
buffer and clock pin transition time
detailed delay ranges for all buffers add to clocks

Clock nets
Saves the generated clock nets
used to guide clock net routing

Clock routing guide


Saves the clock tree routing data
used as preroute guide while running Trial Route

126

Display Clock Tree


ClockDisplayDisplay Clock Tree

127

Display Clock Tree


--by phase delay

128

Clock Tree Browser


ClockClock Tree Brower

Display trig edge, rise/fall delay, rise/fall skew, input delay,


input tran of each cell.
Resize/Delete leaf cell or clock buffer
Reconnect clock tree
129

Optimization
TimingOptimization

IPO

setup time
hold time
SI
DRV (Design
Rule Violation)

130

Optimization Advanced Option

131

Useful Skew

balanced clock

132

Trial Route
perform quick routing for congestion and parasitics
estimation
Prototyping:
Quickly to gauge the
feasibility of netlist.
components in design might
no be routed at legal location

133

Trial Route Congestion Marker


visually check the congestion
statistics.
dump congestion area:
BLOCK

dumpCongesArea -all file_name

V=25/20 H=16/18

The vertical (V) overflow is 25/20 (25 tracks are required , but only 20 tracks are available) .
The Horizontal (H) overflow is 16/18 (16 tracks are required , and18 tracks are available) .
134

Trial Route Congestion Marker cont.

Level

Color

Overflow Value

Blue

One more track required

Green

Two more track required

Yellow

Three more track required

Red

Four more track required

Magenta

Five more track required

Grey to White

Six or more track required

6 and higher

135

Timing Analysis
TimingSpecify Analysis ConditionSpecify RC Extraction Mode
TimingExtract RC
TimingTiming Analysis

No Async/Async:
recovery, removal check

No Skew/Skew:
check with/without clock
skew constraint

136

Slack Browser
TimingDebug Timing

137

Power Analysis
TimingExtract RC
PowerEdit Pad Location
PowerEdit Net Toggle Probability

9
9

9
9

138

Statistical Power Analysis


PowerPower AnalysisStatistical

analysis report:

9
9

A power graph
report contains
9 average power usage
9 worst IR drop
9 worst EM violation

instance power file


instance voltage file
boundary voltage file
139

9
9
9
9

Simlation-Based
Power Analysis
PowerPower Analysis
Simulation-Based
save netlist for simulation
DesignSaveNetlist
save sdf for simulation
TimingCalculate Delay
simulation and dump vcd file.
$dumpvars;
$dumpfile(wave.vcd);

Input vcd file for power


analysis
140

VoltageStorm Anaylsis
PowerRun VoltageStorm

9
9

141

Display Rail Analysis


PowerDisplayDisplay Rail Analysis Results

142

Display IR Drop

143

Display Electron Migration

144

Display Resistor Current

145

Display Resistor Current Density

146

SRoute
Route Special Net (power/ground net)

Block pins
Pad pins
Pad rings
Standard cell pins
Stripes (unconnected)

147

Add IO filler
addIoFiller
addIoFiller
addIoFiller
addIoFiller

cell
cell
cell
cell

PFILL prefix IOFILLER


PFILL_9 prefix IOFILLER
PFILL_1 prefix IOFILLER
PFILL_01 prefix IOFILLER -fillAnyGap

Connect io pad power bus by inserting IO filler.


Add from wider filler to narrower filler.

ADD IO FILLER

148

Add IO filler cont.


In order to avoid DRC error
The sequence of placing fillers must be from wider fillers to
narrower ones.
Only the smallest filler can use -fillAnyGap option.

149

NanoRoute
RouteNanoRoute

150

NanoRoute Attributes
RouteNanoRoute/Attributes

151

Crosstalk
Crosstalk problem are getting more serious in 0.25um and
below for:
Smaller pitches
Greater height/width ratio
Higher design frequency

152

Crosstalk Problem
Delay problem

Aggressor
original signal
impacted signal

Noise problem

Aggressor
original signal

impacted signal
153

Crosstalk Prevention
Placement solution
Insert buffer in lines
Upsize driver
Congestion optimization

Add buffer

Upsize

Routing solution
Limit length of parallel nets
Wider routing grid
Shield special nets

154

CeltIC Crosstalk Analysis


SIRun CeltIC Crosstalk Analysis

155

Display Noise Net

156

Antenna Effect
In a chip manufacturing process, Metal is initially deposited
so it covers the entire chip.
Then, the unneeded portions of the metal are removed by
etching, typically in plasma(charged particles).
The exposed metal collect charge from plasma and form
voltage potential.
If the voltage potential across the gate oxide becomes large
enough, the current can damage the gate oxide.

157

Antenna Ratio
Plasma

metal2
via2

+ + + + + ++ + + +

metal2
metal1

Plasma
+ + +

via1
poly gate oxide

Antenna Ratio =

Area of process antennas on a node


Area of gates to the node
158

Antenna Problem Repair


Add jumper
Add antenna cell (diode)
Add buffer

via1

poly

metal2

metal1

gate oxide

159

Add Core Filler


PlaceFillerAdd Filler

Connect the NWELL/PWELL layer in core rows.


Insert Well contact.
Add from wider filler to narrower filler.

160

Add bonding pads (stagger IO pads only)


Linear IO pad

Stagger IO pad
Abutted Stagger IO

PIN
Logic and driver

PR boundary

Bonding matel

Inner Bonding

Outer Bonding

161

Add bonding pads (stagger IO pads only)


For the limitation of bonding wire technique , the stagger IO
pads are used in order to reduce IO pad width.
We have to add the bonding pads after APR is finished if
stagger IO pads is used. But SE does not provide a built-in
function for add bonding pads, CIC reaches this purpose by
the way of importing DEF.
CIC provides a perl script to calculate the bonding pad
location. The full flow is described in next page

162

Add bonding pads flow (stagger IO pads only)

A placed and routed


design in encounter

Export DEF
(In encounter)

routed.def
routed.def

bondPads.cmd
bondPads.cmd
addbonding.pl
addbonding.pl

addbonding.pl routed.def
(In unix terminal)
bondPads.eco
bondPads.eco

ioPad.list
ioPad.list
source bondPads.cmd
(In encounter terminal)

finish

163

Output Data
DesignSaveGDS
DesignSave->Netlist
DesignSave->DEF

Export GDS for DRC,LVS,LPE,and tape out.


Export Netlist for LVS and simulation.
Export DEF for reordered scan chain.

164

Stream Out map


Layer/object name layer/object type layer number data type
METAL1
NAME
NAME
NAME
NAME
VIA12
METAL2

ALL
METAL1/NET
METAL1/SPNET
METAL1/PIN
METAL1/LEFPIN
ALL
ALL

16
16
40
40
16
17
18

0
0
0
0
0
0
0

165

Chapter2

Post-Layout Verification
DRC/ERC/LVS/LPE

Post-Layout Verification Overview


Post-Layout Verification do the following things :

DRC ( Design Rule Check )


ERC (Electrical Rule Check )
LVS (Layout versus Schematic )
LPE/PRE (Layout Parasitic Extraction / Parasitic Resistance
Extraction) and Post-Layout Simulation.

167

Post-Layout Verification Overview cont.


DRC

LVS
vdd!

zn

compare with

zn

gnd!

ERC

LPE/PRE
vdd!

clk

vdd!

short
extract
i

zn

zn

168
gnd!

Post-Layout Verification Overview


Layout Database

DRC

Schematic Netlist

optional

Extract Devices

ERC

LVS

Text and Graphical Error Reports

LPE/PRE

Extracted Netlist with


Parasitic Elements

Post-Layout Simulation

169

DRC flow
Prepare Layout
stream in gds2
add power pad text
stream out gds2

Prepare command file


run DRC
View DRC error (DRC summary/RVE)

170

Prepare Layout
Stream In design
Stream In core gds2
DFII
Library

Stream In IO gds2
LEF in RAM lef
Add power Text
Stream Out

GDSII
GDSII
171

Prepare Layout: Stream In GDSII


Require:
technology file
display.drf

File->import->stream
9
9
9

172

Prepare Layout: Add Power Text


Add power text for LVS and Nanosim
Example: For TSMC18/artisan library

Add text DVDD for IO power pad


Add text DVSS for IO ground pad
Add text VDD for core power pad
Add text VSS for core ground pad

173

Prepare Layout: Stream Out GDSII


File->Export->stream..

9
9
9
174

Prepare command file

Prepare DRC Command file:


0.18 (CBDK018_UMC_Artisan) Calibre
9 180nm_layers.cal
9 G-DF-IXEMODE_RCMOS18-1.8V-3.3V-1P6M-MMC-Calibre-drc2.2-p1

0.18 (CBDK018_TSMC_Artisan) Calibre


9 T18drc_13a25a.drc

175

Prepare Calibre Command file


Edit runset file
LAYOUT PATH CHIP.gds2
LAYOUT PRIMARY CHIP
LAYOUT SYSTEM GDSII

DRC SELECT CHECK


NW.W.1
NW.W.2

DRC UNSELECT CHECK


NW.S.1Y
NW.S.2Y

DRC ICSTATION YES


INCLUDE Calibre-drc-cur
176

Submit Calibre Job


Submit Calibre Job
calibre drc 18nm_layers.cal

Result log
CHIP.drc.summary (ASCII result)
CHIP.drc.results (Graphic result)

177

Using Calibre RVE


Add in .cdsinit
setSkillPath(. ~/ /usr/memtor/Calibre_ss/cur/shared/pkgs/icb/tools/queryskl)
load(calibre.skl)

178

Using Calibre RVE

179

Using Calibre RVE

180

LVS Overview
Layout Data

Schematic Netlist

VDDclk rst cin sel GNDVDD

a<0>

b<0>

a<1>

b<1>

a<5:0>

a<2>

b<2>

b<5:0>

a<3>

b<3>

clk

a<4>

b<4>

rst

a<5>

b<5>

cin

VDD

gnd!

sel

GND s<0> s<1>. . . . .

s<5:0>

carry

GND

181

Initial Correspondence Points


Initial correspondence points establish a starting place for
layout and schematic comparison.
Create initial correspondence node pairs by
adding text strings on layout database.
all pins in the top of schematic netlist will be treated as an initial
corresponding node if calibre finds a text string in layout which
matches the node name in schematic.
VDD

global pin : VDD and GND

...

a<0>

...

b<0>

a<0>
b<0>

...

initial corresponding
node pairs
182

Black-Box LVS
Calibre black-box LVS
One type of hierarchical LVS.
Black-box LVS treats every library cell as a black box.
Black-box LVS checks only the interconnections between library
cells in your design, but not cell inside.
You need not know the detail layout of every library cells.
Reduce CPU time.

183

Black-Box LVS vs. Transistor-Level LVS


Transistor Level LVS
VDD

i1

i1

vs.

i2

i2
GND

Black-Box LVS
inv0d1
VDD

inv0d1

i1

nd02d1

i1

z
GND

vs.

nd02d1
z

i2
184

i2

LVS flow
Prepare Layout
The same as DRC Prepare Layout

Prepare Netlist
v2lvs

Prepare calibre command file


run calibre LVS
View LVS error (LVS summary/RVE)

185

Prepare Netlist for Calibre LVS


Prepare Netlist

umc18lvs.v
umc18lvs.v

Verilog
Verilog
CHIP.v
CHIP.v
v2lvs

umc18lvs.spi
umc18lvs.spi
CHIP.spi
CHIP.spi
v2lvs v CHIP.v l umc18lvs.v o source.spi s umc18lvs.spi s1 VDD s0
GND
If a macro DRAM64x16 is used
v2lvs v CHIP.v l umc18lvs.v l DRAM64x16.v o source.spi s
umc18lvs.spi s DRAM64x16.spi s1 VDD s0 GND
186

CIC Supported Files (umc0.18)


CIC supports the following files in our cell library design
kit.
Calibre LVS runset file
umc18LVS.cal

Calibre LVS rule file


G-DF-MIXEDMODE_RFCMOS18-1.8V_3.3V-1P6M-MMCCALIBRE-LVS-1.2-P3.txt

Black-box LVS relative files


9 pseudo spice file
umc18LVS.spi
9 pseudo verilog file
umc18LVS.v
187

CIC Supported Files (tsmc0.18)


CIC supports the following files in our cell library design
kit.
Calibre LVS rule file
Calibre-lvs-cur_soce
Calibre-lvs-cur_astro

Black-box LVS relative files


9 pseudo spice file
tsmc18_lvs.spi
9 pseudo verilog file
tsmc18_lvs.v

188

Black Box related file


Pseudo spice file
.GLOBAL VDD VSS
.SUBCKT AN2D1 Z A1 A2 VDD GND
.ENDS

Pseudo verilog file


module AN2D1 (Z, A1, A2);
output Z;
input A1;
input A2;
endmodule

189

Prepare command file for Calibre LVS


Edit Calibre LVS runset
LAYOUT PATH CHIP.calibre.gds
LAYOUT PIMARY CHIP
LAYOUT SYSTEM GDSII
SOURCE PATH CHIP.spi
SOURCE PRIMARY CHIP

INCLUDE /calibre/LVS/Calibre-lvs-cur

Edit Calibre LVS rule file

LVS BOX PVSSC


LVS BOX PVSSR
LVS BOX DRAM64x4s
190

Submit Calibre LVS


calibre lvs spice layout.spi hier auto
umc18LVS.cal > lvs.log
layout

verilog

extract

v2lvs

layout.spi

source.spi

191

Check Calibre LVS Summary

OVERALL COMPAISON RESULTS


CELL SUMMARY
INFORMATION AND WARNINGS
Initial Correspondence Points

192

Check Calibre LVS Summary


OVERALL COMPAISON RESULTS

OVERALL COMPARISON RESULTS

#
#
#

#
# #
#

###################
#
#
#
CORRECT
#
#
#
###################

_
*

_
*

|
\___/

193

Check Calibre LVS Summary


CELL SUMMARY

*************************************************
CELL SUMMARY
*************************************************
Result
----------CORRECT

Layout
----------CHIP

Source
-------------CHIP

194

Check Calibre LVS Summary


INFORMATION AND WARNINGS
******************************************************************
INFORMATION AND WARNINGS
******************************************************************
Matched
Layout
----------11525

Matched
Source
----------11525

Unmatched Unmatched
Layout
Source
-------------- --------------0
0

Component
Type
--------------

1
54
79
542

8
----------Total Inst: 10682

1
54
79
542

8
----------10682

0
0
0
0
0
0
0
0
..
..
0
0
-------------- --------------0
0

ADDFHX1
ADDFHX4
ADDFX2
AND2X1
.
XOR3X2
--------------

Nets:
Instances:

195

Check Calibre LVS Summary


Initial Correspondence Points

o Initial Correspondence Points:


Nets: DVDD VDD DGND GND I_X[2] I_X[3] I_X[4]
I_X[5] I_X[6] I_X[7] I_X[8] I_X[9] I_X[10] I_X[11]
O_SCAN_OUT O_Z[0] O_Z[1] O_Z[2] O_Z[3] I_HALT
I_RESET_ I_DoDCT I_RamBistE I_CLK I_SCAN_IN
I_SCAN_EN I_X[0] O_Z[4] I_X[1] O_Z[5] O_Z[6]
O_Z[7] O_Z[8] O_Z[9] O_Z[10] O_Z[11]

196

Check Calibre LVS Log


TEXT OBJECT FOR CONNECTIVITY EXTRACTION
PORTS
Extraction Errors and Warnings for cell CHIP

197

Check Calibre LVS Log


TEXT OBJECT FOR CONNECTIVITY EXTRACTION

-------------------------------------------------------------------------------TEXT OBJECTS FOR CONNECTIVITY EXTRACTION


-------------------------------------------------------------------------------O_Z[0] (523.447,31.68) 105 CHIP
O_Z[1] (598.068,31.68) 105 CHIP
O_Z[2] (821.931,31.68) 105 CHIP
O_Z[3] (896.553,31.68) 105 CHIP
O_Z[4] (971.175,31.68) 105 CHIP
O_Z[5] (1164.455,372.964) 105 CHIP
O_Z[6] (1164.455,446.966) 105 CHIP O_Z[7] (1164.455,520.968) 105 CHIP
O_Z[8] (1164.455,594.97) 105 CHIP
O_Z[9] (1164.455,668.972) 105 CHIP
O_Z[10] (1164.455,742.974) 105 CHIP O_Z[11] (1164.455,816.976) 105 CHIP

198

Check Calibre LVS Log


PORTS

-------------------------------------------------------------------------------PORTS
-------------------------------------------------------------------------------O_Z[0] (523.447,31.68) 105 CHIP
O_Z[1] (598.068,31.68) 105 CHIP
O_Z[2] (821.931,31.68) 105 CHIP
O_Z[3] (896.553,31.68) 105 CHIP
O_Z[4] (971.175,31.68) 105 CHIP
O_Z[5] (1164.455,372.964) 105 CHIP

199

Check Calibre LVS Log


Extraction Errors and Warnings for cell CHIP
Extraction Errors and Warnings for cell "CHIP"
---------------------------------------------WARNING: Short circuit - Different names on one net:
Net Id: 18
(1) name "GND" at location (330.301,216.95) on layer 102 "M2_TEXT"
(2) name "GND" at location (673.2,29.1) on layer 101 "M1_TEXT"
(3) name "VDD" at location (748.1,31.5) on layer 101 "M1_TEXT"
(4) name "VDD" at location (208.93,274.56) on layer 101 "M1_TEXT"
The name "VDD" was assigned to the net.

200

Chapter3

Post-Layout Timing Analysis

-- Nanosim

What Introduce After Place&Route?


Interconnection wires parasitic capacitance.
M1 to substrate
capacitance

M2

M1

M1 to M1
capacitance

M1 to M2
capacitance
vdd!

vdd!

gnd!

gnd!

202

What Introduce After Place&Route?


Interconnection wires parasitic resistance.
M2

M1 parasitic resistance

VIA

VIA parasitic resistance

M1

vdd!

vdd!

gnd!

gnd!

M2 parasitic resistance

203

Pre-Layout And Post-Layout Design


A pre-layout design (before P&R) and a post-layout design
(after P&R)
pre-layout

post-layout

204

Why Post-Layout Simulation?


clock skew

....
critical path delay

...

critical path delay


clk
data

. . .data

205

Post-layout Timing Analysis Flow


Gate-level
Netlist

Gate-level
Analysis
Tr.-level post-layout
timing analysis

Layout

Delay
Calculation

Extraction

Tr. Netlist
RC Network

Tr-level
Analysis

RC Network
Gate-level post-layout
timing analysis

206

Transistor-level Post-layout Simulation


layout

netlist/parasitic
extraction

Calibre LPE/PRE

SPICE netlist

simulation
pattern

Post-layout
simulation
simulation
result

Nanosim

207

What is Nanosim
Nanosim is a transistor- level timing simulation tool
for digital and mixed signal CMOS and BiCMOS
designs.
Nanosim handles voltage simulation and timing
check.
Simulation is event driven, targeting between SPICE
( circuit simulator ) and Verilog ( logic simulator ).

208

Prepare for Post-Layout Simulation


Apply for a CIC account
http://www.cic.org.tw .
fill in your personal data and your request.

Install identd program


this program is used to identify yourself when you log into CICs
account from remote machine.

Put your DB file to CICs account

209

Replace Layout / LPE


Qentry
M {LPE}
tech {UMC18 | TSMC18 | TSMC25 | TSMC35}
f GDSII
T Top_cell_name
s Ram_spce_filename
t {ra1sd | ra1sh | ra2sd | ra2sh | rf2sh |
t18ra1sh | t18ra2sh | t18rf1sh | t18rf2sh | t18rodsh|
18ra1sh_1 | 18ra1sh_2 | 18ra2sh}
c {UMC18 | TSMC18 | TSMC25 | TSMC35}
i {UMC18 | TSMC18 | TSMC25 | TSMC35}
o Netlist_file_name

Example:
Qentry M LPE tech UMC18 f CHIP.gds T CHIP
s RAM1.spec t 18ra2sh s RAM2.spec t 18ra1sh_1
s RAM3.spec t 18ra1sh_2 c UMC18 i UMC18 o CHIP.netlist

Use Qstat to check the status of your job.


The result is stored in result_# directory.

210

Replace/LPE
INPUT
gds2
ram spec

OUTPUT

output netlist
TOP_CELL.NAME
nodename
spice.header
nanosim.run
log files for strem in, stream out, lpe
211

Running Nanosim
Qentry
M {NANOSIM}
n {CHIP.io}
nspice CHIP.netlist spice.header
nvec CHIP.vec
m Top_cell_name
c {CHIP.cfg}
z {CHIP.tech.z}
o Output_file_name
out fsdb
t Total_simulation_time
Example:
Qentry M NANOSIM nspice CHIP.netlist spice.header nvec
CHIP.vec m CHIP c CHIP.cfg z CHIP.tech.z o UMC18 t 100

Use Qstat to check the status of your job.


The result is stored in result_# directory.
212

Spice Header File

Spice Header File Modify PVT

.lib 'l18u18v.012' L18U_BJD


.lib 'l18u18v.012' L18U18V_TT
.lib 'l18u33v_g2.011' l18u33v_tt
*epic tech="voltage 3.3
*epic tech="temperature 100"

213

Generate Nanosim Simulation Pattern


Input simulation pattern --- vec format
type vec
signal CLOCK,START,IN[7:0]
;
time
clock
start
radix
1
1
io
i
i
high 3.3
low 0.0
25
0
0
50
1
0
75
0
0
. . . . .

in<7:0>
44
ii

xx
xx
xx

214

Generate Nanosim Simulation Pattern


Input simulation pattern --- nsvt format
type nsvt
signal CLOCK,START,IN[7:0]
;
clock
start
radix
1
1
io
i
i
period 25
high 3.3
low 0.0
0
0
1
0
0
0
. . . . .

in[7:0]
44
ii

xx
xx
xx

215

Generate Nanosim Simulation Pattern


You can generate Nanosim simulation pattern from
Verilog-XL stimulus.
Verilog test bench file
integer outf;
initial begin
outf = $fopen("input.dat");
. . . . .
$fclose(outf);
$finish;
end
always @(sys_clock or start or in)
$fdisplay(outf,"%t %b %b %h",$time,sys_clock,start,in);
. . . . .
216

Nanosim Configuration File


Example Nanosim_configuration file
bus_notation [ : ]
print_node_logic ADRS[0]
print_node_logic CLK
print_node_logic DATA[0]
. . . . . .
report_node_power VDD
set_node_gnd DGND
set_node_gnd GND
set_node_v DVDD 3.3
set_node_v VDD 1.8
nodename file
ADRS[0]
ADRS[1]
. . . . . .
CLK
DATA[0]
. . . . . .

217

View Simulation Result --- nWave


NOVAS nWave
a waveform viewer which support Timemill output waveform
format.

Environment setup
unix% source /usr/debussy/CIC/debussy.csh

Starting nWave
unix% nWave &

218

Load Simulation Result --- nWave

219

Select Signals --- nWave


Signals Get Signals ...

220

Check Simulation Result --- nWave

221

Power Analysis Result


The power analysis result is stored in Nanosim simulation
log (xxx.log) file
. . . . . .
Current information calculated over the intervals:
0.00000e+00 Node: VDD
Average current
RMS current
Current
Current
Current
Current
Current
. . . . . .

peak
peak
peak
peak
peak

#1
#2
#3
#4
#5

1.00010e+03 ns

: -3.53355e+05 uA
: 3.53388e+05 uA
:
:
:
:
:

-4.54061e+05
-4.34973e+05
-3.88048e+05
-3.87280e+05
-3.84302e+05

uA
uA
uA
uA
uA

at
at
at
at
at

6.78400e+02
4.00000e-01
2.59000e+01
1.27500e+02
5.77800e+02
222

ns
ns
ns
ns
ns

You might also like