Page 1
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
23435$6&.7A>%+9*:5&$()&;*%3<:$=+(&
>6$:*&$()&?+@5*&
!"#$%&'()*%""+(&B&C$""*%&DE*%$F3&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&&&& &&&& & &>6$:*&$()&?+@5*&&
!@563(*&
G H$:#*()&'D.7&2*"34(&I+J&K>EL"3:$6&2*"34(M&G N*(*%$6&"5*8"&
G .(8@5&<6*"&G O6++%86$((3(4&G >6$:*P*(5&G 76+:#A"L(5E*"3"&G ?+@=(4&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( && & & &>6$:*&$()&?+@5*&
/L83:$6&H$:#*()&2*"34(&O6+J&&
G DL(5E*"3"Q&– DL(+8"L"&2*"34(&7+P836*%&K2*"34(&;3"3+(M&
G >6$:*P*(5Q&– D+7&-(:+@(5*%&
G H$:#*()&(*563"5&;*%3<:$=+(&– R+)*6"3P&
G O$S%3:$=+(&– 'D.7&T*()+%&
Synthesis
Placement & Routing
Backend netlist Verification
Fabrication
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
D+7&-(:+@(5*%&O6+J&
Floorplan
IO Placement
Cell Placement
IO Filler Placement Connect Power Clk tree synthesis
Core Filler Placement
Design Rule Check
Tech Libraries
Netlist, GDS
Signal Route
Netlist
Power Planning
Page 2
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• Floorplan: – Placement area – IOs – RAM/ROM
D+7&-(:+@(5*%&O6+J&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• Power Planning - Design a power ring - Add horizantal and
vertical power stripes
D+7&-(:+@(5*%&O6+J&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• Place Cells: – Place all the standard
cells into the rows
D+7&-(:+@(5*%&O6+J&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Clock Tree Synthesis: – Places clock buffers – Timing constraints
– Skew etc
D+7&-(:+@(5*%&O6+J&
Page 3
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• Connect Power Supply: – Core Power – Pad Power
• Add FILLER cells • core filler cells • IO filler cells
D+7&-(:+@(5*%&O6+J&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• Route Clock tree: – Finds an “optimal” way – Reduces skew
• Route signal nets – Final step
D+7&-(:+@(5*%&O6+J&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
2*P+&0$L+@5&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
/*:E(+6+4L&2*":%38=+(&O36*"&
LEF: Library Exchange Format
– Technology: Design rules, Capacitance, Resistance, Antenna factor, Vias ! header.lef
– Cells & pads: Size, Class, Placement, Pin Information, Obstructions. ! Standard_cell.lef ! IO.lef
Page 4
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
&0-OA-U$P86*Q&.(T*%5*%&
MACRO IV CLASS CORE ; FOREIGN IV 0.000 0.000 ; ORIGIN 0.00 0.00 ; SIZE 3.00 BY 12.00 ; SYMMETRY x y ; SITE CORE ; PIN A DIRECTION INPUT ; ANTENNASIZE 1.4 ; PORT LAYER metal1 ; RECT 0.50 5.00 1.00
5.50 ; END END A
OBS LAYER metal1 ; RECT 1.90 6.50 2.60
7.20 ; RECT 0.40 4.90 1.00
5.60 ;
Physical cell size
Terminals with physical placement
A Q
gnd!
vdd! vdd!
gnd!
A Q
!S"5%@:=+("&
Layout Abstract LEF
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Design Description Files
Enc: Encounter Format – Netlist, Layout
DEF: Design Exchange Format (not used in our flow. – Netlist, Layout
Verilog – Netlist, generated from synthesis tool
?*V@3%*)&2$5$&W+%&>(?&KO$%$)$L&XYZ(PM&
G 0-OQ&03S%$%L&-U:E$(4*&O+%P$5&– E*$)*%[6*W&– "5$()$%)7*66[6*W&Q&7*66&03S%$%L&– .![6*W&Q&>$)&03S%$%L&– P*P+%L[6*W&Q&:@"5+P&
G 63S\56WQ&63S%$%3*"&5E$5&:+(5$3(&=P3(4&3(W+%P$=+(&
G "):Q&DL(+8"L"&2*"34(&7+("5%$3(5&K4*(*%$5*)&)@%3(4&"L(5E*"3"M[&!8=+($6&
G R*P+%LQ&P*P+%L[63S&G 2*"34(&K(*563"5MQ&L+@%])*"34([T&
D5$%=(4&5E*&D+7&-(:+@(5*%&!"!#$%&$!'()*&
+%,-'!./&?*P*PS*%&5+&P$3(5$3(&5E*&)3%*:5+%L&E3*%$%:EL[&
Page 5
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Design Import
Will be provided
Needs to be specified
12
2*"34(&A^&.P8+%5&2*"34(&&
\@"%\6+:$6A*35\:$)_\W$%XYZ\"L(_ZZ`\&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
O6++%86$(&
G '&"5$%=(4&I++%86$(&3"&:%*$5*)&K%*V@3%*)&$%*$&3"&*"=P$5*)&SL&5E*&5++6M&
G N6+S$6&$()&)*5$36*)&%+@=(4&4%3)"&$%*&:%*$5*)&
G /E*&:+%*&%+J"&$%*&:%*$5*)&G D35*"&W+%&.!"&$%*&:%*$5*)&
– .!&$()&S6+:#&5+&:+%*&)3"5$(:*&3"&)*<(*)&SL&5E*&@"*%&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
O6++%86$((3(4&
RAM
IO Site
rows
7+%*&?+J"&
;))&Na2&
If rows are flipped and abut VDD and GND can be shared by 2 rows. Default setting!
;))&
Na2&;))&
Page 6
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&& & & &>6$:*&$()&?+@5*&&
O6++%86$(&D*5@8&
IO to core distance
Core utilization
O6++%86$(&A^&D8*:3WL&O6++%86$(&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
H6+:#&>6$:*P*(5&
Flight lines will indicate location of the pins
Block: Circuitry that is pre-routed, e.g., RAM.
.!&>6$:*P*(5&
G D8*:3WL&6+:$=+(\+%3*(5$=+(&+W&8$)"&&– .(8@5,&+@58@5&– :+%*A8+J*%,&8$)A8+J*%&&
• ?*:+PP*()$=+(Q&– >@5&:+%*&8+J*%&"@886L&+(&!"#$"%$&"'"(&– b"*&4$8"&3(&5E*&8$)&W%$P*&W+%&$))3=+($6&8+J*%&
"@886L[&– ca+&7!?-$8+J*%&"@886L&$5&5E*&:+%(*%"c&
– /E*&P+%*&"@8863*"&5E*&S*d*%&
>+J*%&?3(4"&
G >+J*%&8$5E"&$%*&86$((*)&$()&P+)3<*)&S*W+%*&%+@=(4&
G 7%*$=+(&+W&8+J*%&%3(4"&5E$5&"@%%+@()&$66&S6+:#"&$()&:+%*[&
G 7%*$=+(&+W&"5%38*"&+T*%&%+J"&G 7+((*:5"&%3(4",&"5%38*"&$()&8$)"&
Page 7
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&& & & &>6$:*&$()&?+@5*&&
>+J*%&?3(4"&:+(5e)&
vdd
stripes gnd
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&& & & &>6$:*&$()&?+@5*&&
>+J*%&?3(4&D*5@8&
Choose upper layers (say metal 3 or 4)
>+J*%A^&>+J*%&86$((3(4&A^&'))&?3(4"&
>+J*%A^&>+J*%&86$((3(4&A^&'))&D5%38*"&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( && &>6$:*&$()&?+@5*&
7+((*:=(4&>+J*%&K"?+@5*M&
S*5J**(&&G &.!&8+J*%&83("&J35E3(&.!&%+J"&
G &7!?-&%3(4&J3%*"&$()&5E*&.!&8+J*%&83("&
G &"5%38*"&$()&:+%*&%3(4"&
G &S6+:#&8+J*%&83("&$()&5E*&7!?-&%3(4&J3%*"&
?+@5*A^&D8*:3$6&?+@5*&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&& & & &>6$:*&$()&?+@5*&&
7*66&>6$:*P*(5&
• Initial cell placement
• Moves, swaps changes orientation of cells to minimize required wire length
• Optimizes for wire length and net crossings • A post CTS optimization may be carried out
to optimize the design
Place -> Standard Cells
Page 8
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&& & & &>6$:*&$()&?+@5*&&
76+:#&/%**&DL(5E*"3"&
• 76+:#8$)&$()&+@58@5&(**)&5+&)*<(*)&3(&$&"8*:3<:$=+(&<6*[&– :6+:#8$)\!&
• 76+:#&5%**&3"&"L(5E*"3F*)&$()&%+@5*)&J35E&E34E*"5&8%3+%35L&5+&P3(3P3F*&:6+:#&"#*J[&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Clock Skew
• Absolute Skew -Delay from input to leaf cell
• Relative Skew -Delay difference between leaf cells
Danger! Too much clock skew may: 1) Force you to reduce clock rate 2) Cause malfunction at any clock
rate
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Distributed Buffers in H-tree
Small relative skew
Absolute skew of less importance
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
• create_clock –period value –name clk_name –add [get_ports clk]
• Generate Clock tree specification createClockTreeSpec –output file_name.ctstch -routeClknet -buffer buffer_list
• Specify CTS file and synthesize clock tree. specifyClockTree -clkfile file_name.ctstch clockDesign –specFile file_name.ctstch –clk clk_name deleteTrialRoute
CTS commands
Page 9
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Synthesized Clock tree
Clock buffers are placed in the core row gaps
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Core filler cell
Core filler cells ensure the continuity of power/ground rails and N+/P+ wells in the row.
Filler cells will close any gap it is important to perform CTS before filler cell placement.
before after
Place -> Filler -> Add filler Place -> Filler -> Add IO filler
D34($6&?+@=(4&
G D34($6&%+@=(4&– 7+((*:5"&:*66"&$::+%)3(4&5+&(*563"5&– R*5$6&J3%*"&$%*&:+((*:5*)&+T*%&"*T*%$6&6$L*%"&
• ?+@=(4&=P*&3"&"5%+(46L&)*8*()*(5&+(&5E*&)*"34(&:+P86*U35L&
Route -> Nano Route
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+(&& && & &>6$:*&$()&?+@5*&
Verification and Tapeout
Verification (in SoCEnc) – Connectivity, Antenna ....
Export – Verilog (netlist) – sdf (timing) – GDS II
Post-layout simulation
tapeout
Verify
Page 10
?+@=(4&D:%385&
G -$:E&:+PP$()&3"&$@5+P$=:$66L&J%3d*(&3(&$&":%385&<6*&%"'-0".%12'3$&
G D:%385&(**)"&5+&S*&5%3PP*)&K%*P+T*&@((*:*""$%L&:+PP$()"M&
G -$"L&5+&:E$(4*&8$%$P*5*%"&
G 7$(&S*&%*@"*)&J35E&P+)3<:$=+("&
G /3P*&5+&)+&>(?&35*%$=T*6L&3"&%*)@:*)&
G D*%T*"&$"&)+:@P*(5$=+(&$()&P$#*"&35&8+""3S6*&5+&%*8*$5&5E*&I+J&&
!"#$%&'()*%""+(,&-./,&0/1,&23435$6&.7&8%+9*:5&$()&;*%3<:$=+( &&&&& &&&& & &>6$:*&$()&?+@5*&&
fE$5e"&(*U5g&
• 7+(=(@*&3(&5E*&6$S&J35E&'""34(P*(5&X&– /E*&)*"34(&(**)"&5+&S*&5$#*(&5E%+@4E&
– D3P@6$=+(,&3(:6@)3(4&8+"5A"L(5E*"3"&
– DL(5E*"3"&– >6$:*&$()&?+@5*&