Synopsys Design Flow
Synopsys Design Flow
Synopsys Design Flow
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
© <strong>Synopsys</strong> 2012 1<br />
Digital IC <strong>Design</strong><br />
Victor Grimblatt<br />
R&D Group Director<br />
SASE 2012
Agenda<br />
Introduction<br />
Electronic systems, an historic<br />
prospective<br />
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 2
Introduction<br />
© <strong>Synopsys</strong> 2012 3
Consumers Driving “Smart” Electronics<br />
Product Complexity / Capabilities<br />
1980 1990 2000 2010 2020<br />
© <strong>Synopsys</strong> 2012 4
© <strong>Synopsys</strong> 2012 5<br />
Mobile<br />
100<br />
15<br />
12<br />
80<br />
60<br />
40<br />
20<br />
9<br />
6<br />
3<br />
0<br />
0<br />
Handset IC Market Value ($B)<br />
2010 2011 2012 2013 2014 2015<br />
Tablet IC Market Value ($B)<br />
2010 2011 2012 2013 2014 2015<br />
Source IBS, February 2011<br />
$38B to $109B in<br />
non-memory ICs in 5 years!
Cloud Infrastructure:<br />
Data, Data, Data<br />
Access<br />
Access<br />
Access<br />
© <strong>Synopsys</strong> 2012 6<br />
Creation Transportation<br />
Manipulation<br />
Data<br />
Storage<br />
IP Traffic, Exabytes<br />
Billions<br />
$80<br />
$70<br />
$60<br />
$50<br />
$40<br />
$30<br />
$20<br />
$10<br />
$0<br />
1990<br />
1992<br />
Microprocessor Sales<br />
1994<br />
1996<br />
1998<br />
2000<br />
Source: Data Center Knowledge 2011; P. Otellini, Intel, Investor Meeting 2010<br />
1,200<br />
1,000<br />
800<br />
600<br />
400<br />
200<br />
0<br />
241.8<br />
Global IP Traffic<br />
336.3<br />
451.2<br />
2002<br />
2004<br />
2006<br />
593.0<br />
2008<br />
2010<br />
759.2<br />
2012F<br />
2014F<br />
965.5<br />
2010 2011F 2012F 2013F 2014F 2015F<br />
Source: Cisco Systems, VNI Global Mobile Data Traffic Forecast Update 2011<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
0.8<br />
1.227<br />
Data Storage<br />
1.8<br />
7.91<br />
2009 2010 2011 2012 2013 2014 2015<br />
Source: Wikipedia, 2011; Google, Stockholder Meeting 2010
Smart Everything<br />
Grid Buildings Cars Toasters Dogs…?<br />
“Smart”<br />
© <strong>Synopsys</strong> 2012 7<br />
Software<br />
Sensors<br />
Microprocessors<br />
Storage<br />
Communication<br />
Example<br />
1990<br />
Lines of<br />
Code<br />
1M<br />
SW & E/E<br />
% Vehicle<br />
Cost<br />
1970 100K 40%
Semiconductor Content<br />
Electronic Content in Systems Increases<br />
30%<br />
25%<br />
20%<br />
15%<br />
10%<br />
5%<br />
0%<br />
Source: ST, TI, IC Insights<br />
© <strong>Synopsys</strong> 2012 8
Drivers of Innovation<br />
and Differentiation<br />
2<br />
Better<br />
© <strong>Synopsys</strong> 2012 9<br />
Cheaper<br />
1<br />
Sooner<br />
3<br />
EDA + IP<br />
Applications<br />
Electronics<br />
~$1.31T<br />
Semi<br />
$320.8B<br />
EDA & IP<br />
$8.4B<br />
Source: IC Insights, VDC Research,<br />
<strong>Synopsys</strong> Estimates
What Drives the Drivers?<br />
Mobile<br />
Cloud<br />
Infrastructure<br />
“Smart”<br />
© <strong>Synopsys</strong> 2012 10<br />
Performance<br />
Power<br />
Power<br />
Performance<br />
Power/Cost/Perf.<br />
Integration
Advanced <strong>Design</strong>s and Tapeouts<br />
Source: <strong>Synopsys</strong> Global Technical Services<br />
© <strong>Synopsys</strong> 2012 11
Leading the Way at 32/28nm <strong>Design</strong><br />
Source: <strong>Synopsys</strong> Global Technical Services<br />
© <strong>Synopsys</strong> 2012 12<br />
> 370 32/28nm Active <strong>Design</strong>s
Leading the Way at 22/20nm <strong>Design</strong><br />
Source: <strong>Synopsys</strong> Global Technical Services<br />
© <strong>Synopsys</strong> 2012 13<br />
> 70 22/20nm Active <strong>Design</strong>s
Leading the Way at 16/14nm <strong>Design</strong><br />
Source: <strong>Synopsys</strong> Global Technical Services<br />
© <strong>Synopsys</strong> 2012 14<br />
> 12 16/14nm Active <strong>Design</strong>s
Advanced <strong>Design</strong> Trends<br />
100%<br />
75%<br />
50%<br />
25%<br />
© <strong>Synopsys</strong> 2012 15<br />
56% of Respondents Currently <strong>Design</strong>ing at 45nm or Below<br />
180nm<br />
130nm<br />
90nm<br />
65/55nm<br />
45/40nm<br />
32/28nm<br />
≥250nm<br />
0%<br />
2002 2003 2004 2005 2006 2007 2008 2009 2010 2011<br />
Source: 2011 <strong>Synopsys</strong> Global User Survey<br />
Advanced <strong>Design</strong> Trends<br />
35%<br />
30%<br />
25%<br />
20%<br />
15%<br />
10%<br />
5%<br />
0%<br />
3%<br />
© <strong>Synopsys</strong> 2012 16<br />
5% 6% 5%<br />
≥250nm 180 130 90 65/55 45/40 32/28 22/20
Clock Frequency Trends<br />
100%<br />
80%<br />
60%<br />
40%<br />
20%<br />
© <strong>Synopsys</strong> 2012 17<br />
101-200MHz<br />
51-100MHz<br />
201-300MHz<br />
301-400MHz<br />
401-500MHz<br />
751MHz-1GHz<br />
>2GHz<br />
1-2GHz<br />
0%<br />
≤50MHz<br />
2004 2005 2006 2007 2008 2009 2010 2011<br />
Source: 2011 <strong>Synopsys</strong> Global User Survey<br />
Frequency is Increasing Over 1GHz<br />
42%
<strong>Design</strong>s Are Growing More Complex<br />
30%<br />
20%<br />
10%<br />
0%<br />
13%<br />
28%<br />
© <strong>Synopsys</strong> 2012 18<br />
12% 13%<br />
13%<br />
12%<br />
6%<br />
7%<br />
9%<br />
6%<br />
9% 10%<br />
6%<br />
9%<br />
5% 4%<br />
1-100K 101-500K 501K-1M 1-2M 2-5M 5-10M 10-20M 20-50M 50-100M >100M<br />
Source: 2011 <strong>Synopsys</strong> Global User Survey<br />
Memory = 48% of Gate Count (on average)<br />
Logic Memory<br />
7%<br />
6%<br />
16%<br />
10%
$M<br />
Hardware/Software Development Costs<br />
$2.50<br />
$2.00<br />
$1.50<br />
$1.00<br />
$0.50<br />
$-<br />
Source: IBS, <strong>Synopsys</strong><br />
1 3 5 7 9 11 13 15 17 19 21 23 25 27<br />
Months<br />
© <strong>Synopsys</strong> 2012 19<br />
Software Is Half of Time-to-Market<br />
App-Specific SW<br />
Low-Level SW<br />
OS Support<br />
<strong>Design</strong> Management<br />
Post-silicon Validation<br />
Masks<br />
Physical <strong>Design</strong><br />
RTL Verification<br />
RTL Development<br />
Spec Development<br />
IP Qualification
Electronic Systems, an Historic<br />
Prospective<br />
© <strong>Synopsys</strong> 2012 20
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 21
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 22
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 23
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 24
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 25
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 26
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 27
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 28
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 29
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 30
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 31
Key Innovations in Electronics:<br />
Audio/Video<br />
© <strong>Synopsys</strong> 2012 32<br />
2005<br />
Sonos
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 33
Going to a satellite not so far away!<br />
Apollo Guidance Computer, ~100 Microns, MIT<br />
© <strong>Synopsys</strong> 2012 34<br />
1961<br />
10 -3 MIPS<br />
Source: MIT, 1961
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 35
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 36
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 37
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 38
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 39
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 40
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 41
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 42
Key Innovations in Electronics:<br />
Computers & Communications<br />
© <strong>Synopsys</strong> 2012 43
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 44
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 45
Once Upon a Time …<br />
© <strong>Synopsys</strong> 2012 46<br />
April, 1961 first integrated circuit developed by<br />
Robert Noyce, from Fairchild Semiconductor
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 47
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 48
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 49
A Big Event …<br />
4004, 10 Microns, Intel<br />
© <strong>Synopsys</strong> 2012 50<br />
1971<br />
10 -1 MIPS<br />
Source: 4004, Intel, 1971
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 51
A 10,000X Improvement, Thanks To…<br />
“A Computer Code Entitled SCALD […] Speeds the Job”<br />
© <strong>Synopsys</strong> 2012 52<br />
Source: Lawrence Livermore National Laboratory, Newsline, January 10 th , 1979
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 53
1961-1981, A 10,000X Improvement…<br />
S-1 Supercomputer, ~3 Microns, LLNL<br />
© <strong>Synopsys</strong> 2012 54<br />
1981<br />
10 MIPS<br />
Source: Lawrence Livermore National Laboratory, 1983
Time Flies Away …<br />
DEC Alpha 21064, 64bits, 750 nm CMOS, 200Mhz<br />
© <strong>Synopsys</strong> 2012 55<br />
1991<br />
300<br />
DMIPS<br />
Source: Wikimedia Commons; Courtesy of A. Domic
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 56
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 57
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 58
Another Time Stamp …<br />
Itanium, 180 Nanometers, Intel<br />
© <strong>Synopsys</strong> 2012 59<br />
2001<br />
~25 GOPS<br />
Source: Intel, 2001
Key Innovations in Semiconductors<br />
© <strong>Synopsys</strong> 2012 60
1961-2011, A 100,000,000X Improvement…<br />
Ivy Bridge, 22 Nanometers, Intel<br />
© <strong>Synopsys</strong> 2012 61<br />
2011<br />
100 GOPS<br />
~160mm 2 , 1.4B transistors, 2.5-4GHz, 45-80W<br />
Source: M. Bohr, Intel, IDF 2011; S. Siers, Intel, ISSCC 2012; Sandra 2011
The Wireless Side in 2011:<br />
ST AP9540<br />
• Application processor for<br />
smart phones and tablets<br />
– Dual ARM Cortex A9<br />
@ 1.85GHz<br />
– Imagination GPU SGX544<br />
@ 500MHz<br />
– Dual 32 bits LPDDR2<br />
@ 533MHz<br />
• 32nm technology<br />
– 10 metal layers<br />
• Advanced power<br />
management<br />
– 10+ switchable power<br />
domains with multivoltage/multi-supply<br />
scenarios<br />
© <strong>Synopsys</strong> 2012 62<br />
Periph3<br />
Periph1<br />
DSS<br />
G1<br />
MCDE<br />
SGX544<br />
HVA<br />
DDR1 PHY<br />
SVA<br />
DDR<br />
CTRL1<br />
CSI<br />
MMDSP<br />
SIA<br />
MMDSP<br />
A9<br />
Periph2<br />
C2C<br />
DDR<br />
CTRL0<br />
DDR0 PHY
Gordon E. Moore’s Law<br />
Twice the Number of Transistors for the Same Price,<br />
Every Two Years<br />
0.5 = ~0.7<br />
The Scaling Factor<br />
“The complexity for minimum component<br />
costs has increased at a rate of roughly a<br />
factor of two per year ... Certainly over<br />
the short term this rate can be expected to<br />
continue, if not to increase. Over the<br />
longer term, the rate of increase is a bit<br />
more uncertain, although there is no<br />
reason to believe it will not remain nearly<br />
constant for at least 10 years.” Gordon E.<br />
Moore, Electronic Magazine, April 19 th ,<br />
1965<br />
© <strong>Synopsys</strong> 2012 63<br />
Area = 0.5<br />
Area = 1
Ley de Moore<br />
LOG2 OF THE NUMBER OF<br />
COMPONENTS PER INTEGRATED FUNCTION<br />
© <strong>Synopsys</strong> 2012 64<br />
16<br />
15<br />
14<br />
13<br />
12<br />
11<br />
10<br />
9<br />
8<br />
7<br />
6<br />
5<br />
4<br />
3<br />
2<br />
1<br />
0<br />
1959<br />
1960<br />
1961<br />
1962<br />
1963<br />
1964<br />
1965<br />
1966<br />
1967<br />
1968<br />
1969<br />
1970<br />
1971<br />
1972<br />
1973<br />
1974<br />
1975<br />
http://download.intel.com/museum/Moores_Law/Articles-<br />
Press_releases/Gordon_Moore_1965_Article.pdf<br />
Fuente: Electronics, 19 Abril, 1965
Wafer 1” – 1959<br />
© <strong>Synopsys</strong> 2012 65
Wafer 300 mm<br />
© <strong>Synopsys</strong> 2012 66
Proyecciones para el 2000 en 1975<br />
© <strong>Synopsys</strong> 2012 67<br />
Moore no siempre tuvo<br />
razón
<strong>Design</strong> - Layout<br />
© <strong>Synopsys</strong> 2012 68
EDA Back Then…<br />
CALMAGRAPHIC, Calma<br />
© <strong>Synopsys</strong> 2012 69<br />
Source: D.E. Weisberg, The Engineering <strong>Design</strong> Revolution, 2008 (www.cadhistory.net)
<strong>Design</strong> - Layout<br />
© <strong>Synopsys</strong> 2012 70
1970 – From Manual Layout to Manufacturing<br />
Digitizing<br />
Table/Tablet<br />
• Applicon- PCB & IC Digitizing, CAM*<br />
• ComputerVision- Wiring, Mapping, Documentation, PCB<br />
• David Mann output for IC masks<br />
• Gerber for PCB artwork<br />
• Autotrol for digitizing<br />
* Computer Aided Manufacturing<br />
© <strong>Synopsys</strong> 2012 71<br />
Keyboard, Tablet<br />
and CRT<br />
Mainframe-500 lbs<br />
128k; 8-16 bit<br />
The Age of<br />
the Gods<br />
SENSES<br />
33 MB Disk<br />
Plotter<br />
Mag Tape-Output<br />
Photo-Mask Generation
<strong>Design</strong> - Layout<br />
© <strong>Synopsys</strong> 2012 72
Basic Early CAD Applications<br />
Gridded<br />
Pencil IC/PCB<br />
Layouts<br />
© <strong>Synopsys</strong> 2012 73<br />
Primitive<br />
Database<br />
Artwork<br />
for<br />
Manufacturing<br />
Schematic Card Deck from<br />
Simulation<br />
Keypunch<br />
01110010<br />
00011001<br />
10010110<br />
00011001<br />
01110010<br />
Analog
Standard Cells & Channel Routing<br />
© <strong>Synopsys</strong> 2012 74<br />
Source: GE Avionics, 1968
Technology Or… Art?<br />
© <strong>Synopsys</strong> 2012 75<br />
Source: Intel & MoMA, 1974
<strong>Design</strong> - Synthesis<br />
© <strong>Synopsys</strong> 2012 76
<strong>Design</strong> - Synthesis<br />
© <strong>Synopsys</strong> 2012 77
<strong>Design</strong> - Synthesis<br />
© <strong>Synopsys</strong> 2012 78
<strong>Design</strong> - Fab<br />
© <strong>Synopsys</strong> 2012 79
<strong>Design</strong> - Fab<br />
© <strong>Synopsys</strong> 2012 80
<strong>Design</strong> - Verification<br />
© <strong>Synopsys</strong> 2012 81
<strong>Design</strong> - Verification<br />
© <strong>Synopsys</strong> 2012 82
<strong>Design</strong> - Verification<br />
© <strong>Synopsys</strong> 2012 83
The Key Components of Modern EDA<br />
1980s<br />
Mead &<br />
Conway<br />
© <strong>Synopsys</strong> 2012 84<br />
VHDL &<br />
Verilog<br />
DRC<br />
& LVS<br />
Dracula<br />
BBL &<br />
Timberwolf<br />
Logic<br />
Synthesis<br />
Framework<br />
Hardware<br />
Emulation<br />
Podem X<br />
Scan Test<br />
BDD<br />
Flex<br />
Cathedral<br />
Ptolemy<br />
Interconnect<br />
modeling
Some Key Contributors to EDA<br />
Commercial<br />
Industry<br />
High-Level<br />
<strong>Design</strong><br />
© <strong>Synopsys</strong> 2012 85<br />
DRC/LVS<br />
System,<br />
Layout<br />
Verilog<br />
Place &<br />
Route<br />
Multi<br />
Discipline<br />
Innovators<br />
Logic<br />
Synthesis
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 86
<strong>Design</strong> Process<br />
Verify: verify the correctness of<br />
design and implementation<br />
© <strong>Synopsys</strong> 2012 87<br />
<strong>Design</strong>: specify and enter the<br />
design intent<br />
Implement: refine the design<br />
through all phases
Bottom – up / Top – down<br />
• Bottom – up<br />
– Start from simple modules<br />
– Goes to complex modules<br />
– Suitable to create small parts that will be reused<br />
• Top – down<br />
– Start from complex modules<br />
– Goes to simple modules<br />
– Suitable for big systems<br />
© <strong>Synopsys</strong> 2012 88
Bottom – up / Top – down<br />
Bottom – up<br />
© <strong>Synopsys</strong> 2012 89<br />
Complex system<br />
Module (one function)<br />
Register and gates<br />
Transistors<br />
Top – down
IC <strong>Design</strong> . . . A Simplified Explanation<br />
process begin<br />
wait until not<br />
CLOCK'stable<br />
and CLOCK=1;<br />
if(ENABLE='1') then<br />
TOGGLE
The Front End<br />
Architecture:<br />
• Key Algorithms (filtering, for example)<br />
• Amount of on-chip Memories, sizes?<br />
• How many Integer Proc Units?<br />
RTL: Register Transfer Language<br />
• Verilog (1988), VHDL, SystemVerilog: an executable spec<br />
for the chip, amounting to over a million lines of code<br />
• Lots of simulations to verify the spec (literally billions of<br />
cycles)<br />
• Timing constraints, clock definitions, etc<br />
© <strong>Synopsys</strong> 2012 91
The Front End<br />
Logic <strong>Design</strong>: convert the RTL to logic gates<br />
(NAND-NORs, NOTs, Registers)<br />
• A manual process in the past, still mostly manual for Analog<br />
• Logic Synthesis (1989): automate the process<br />
• Many discrete optimization techniques used here: boolean<br />
minimization, static timing analysis, state equivalence, etc,<br />
etc.<br />
• End point is a “netlist”, meaning a set of logic gates and their<br />
connections. A large netlist is in the 10s of millions of gates<br />
• Can be simulated or “formally verified” versus the RTL.<br />
• Key technique: how do you prove that two logic equations<br />
are equivalent?<br />
© <strong>Synopsys</strong> 2012 92
The Back End<br />
Floorplanning<br />
• Where do we place the large blocks? Where do we place<br />
the “random” logic and “structured blocks”? A<br />
combination of manual and automated approaches is<br />
used<br />
• Need to keep connections short to meet timing, but also<br />
cannot “congest” the design too much or we cannot<br />
complete the connections<br />
• Note that connections do have R and C (to substrate and<br />
coupling between wires) so they introduce delay! Meeting<br />
timing can be very difficult!<br />
• The Power and Ground lines usually get decided here<br />
© <strong>Synopsys</strong> 2012 93
The Back End<br />
Placement:<br />
• Now we need to complete the exact details of<br />
where each block and gate will be<br />
• Automation has been a key for many years<br />
(1980). A block may contain hundreds of<br />
thousands of cells, so it is very hard problem:<br />
minimize area, be routable and meet timing<br />
• Note may have to add logic: repeaters to<br />
restore signals a key example<br />
© <strong>Synopsys</strong> 2012 94
The Back End<br />
Routing<br />
• Complete all the connections!<br />
• But, need to meet timing and keep signal integrity. This also<br />
involve separating some wires, for example, to avoid bad<br />
couplings<br />
• Automation is the norm here (1980)<br />
Verification:<br />
• Spacing and sizing rules are checked for all polygons (1980)<br />
• Parasitics are extracted, netlists back annotated and time<br />
analyzed using static techniques (1990)<br />
• Manufacturing requires complicated rules, such as wire density<br />
been “uniform”<br />
© <strong>Synopsys</strong> 2012 95
<strong>Design</strong> Goes to Fabrication<br />
© <strong>Synopsys</strong> 2012 96<br />
Sounds simple, but have a host of<br />
very hard problems to solve!
Fabrication<br />
Mask fabrication<br />
Wafer fabrication<br />
Wafer testing<br />
Assembly and packaging<br />
IC test<br />
© <strong>Synopsys</strong> 2012 97
What’s a design flow?<br />
System<br />
Analysis<br />
System Studio<br />
Logic Modeling<br />
VERA<br />
Testbench<br />
VCS-MX<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
VCS-MX<br />
Magellan<br />
Formality<br />
PrimeTime<br />
PrimePower<br />
Post-Route<br />
Verification<br />
PrimeTime<br />
NanoSim<br />
HSPICE<br />
© <strong>Synopsys</strong> 2012 98<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
Select<br />
Architecture<br />
RTL Verification<br />
ATPG<br />
TetraMAX<br />
Gate-level<br />
verification<br />
Specification<br />
Module Compiler<br />
RTL Gates<br />
Physical Compiler<br />
JupiterXT<br />
STAR-RCXT<br />
Hercules<br />
Synthesis<br />
<strong>Design</strong> Planning<br />
Gate-level<br />
netlist<br />
Place & Route<br />
Physical <strong>Design</strong><br />
Checks<br />
…the steps you take to design a chip!<br />
Scripts<br />
Initial constraints<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
<strong>Design</strong> Compiler<br />
Power Compiler<br />
DFT Compiler<br />
<strong>Design</strong><br />
Constraints<br />
Physical Compiler<br />
Astro<br />
Technology<br />
Process<br />
Models / IP<br />
Proteus<br />
Physical Data<br />
Creation<br />
Library Compiler<br />
<strong>Design</strong>Ware Library<br />
Links-to-<br />
Layout<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
Mask Writer<br />
GDSII<br />
CATS
<strong>Design</strong> Implementation<br />
System<br />
Analysis<br />
System Studio<br />
Logic Modeling<br />
VERA<br />
Testbench<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
VCS-MX<br />
Verification<br />
VCS-MX<br />
Magellan<br />
Formality<br />
PrimeTime<br />
PrimePower<br />
Post-Route<br />
Verification<br />
PrimeTime<br />
NanoSim<br />
HSPICE<br />
© <strong>Synopsys</strong> 2012 99<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
Select<br />
Architecture<br />
RTL Verification<br />
ATPG<br />
TetraMAX<br />
Gate-level<br />
verification<br />
Specification<br />
Module Compiler<br />
RTL Gates<br />
Physical Compiler<br />
JupiterXT<br />
STAR-RCXT<br />
Hercules<br />
Synthesis<br />
<strong>Design</strong> Planning<br />
Gate-level<br />
netlist<br />
Place & Route<br />
Physical <strong>Design</strong><br />
Checks<br />
Scripts<br />
Initial constraints<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
<strong>Design</strong> Compiler<br />
Power Compiler<br />
DFT Compiler<br />
<strong>Design</strong><br />
Constraints<br />
Physical Compiler<br />
Astro<br />
Technology<br />
Process<br />
Models / IP<br />
Proteus<br />
Physical Data<br />
Creation<br />
Library Compiler<br />
<strong>Design</strong>Ware Library<br />
Links-to-<br />
Layout<br />
<strong>Design</strong> for Manufacturing<br />
Blah blah blah<br />
yada<br />
Blah<br />
yada<br />
blah blah<br />
Blah blah<br />
yada<br />
blah<br />
Blah<br />
yada<br />
yidie blah blah<br />
Blah<br />
yadie<br />
blah<br />
yada<br />
blah<br />
So on and yada<br />
yidie<br />
so<br />
Blah<br />
yadie<br />
forth<br />
blah blah<br />
So<br />
on<br />
on<br />
and<br />
and<br />
on<br />
yidie<br />
so<br />
yadie<br />
forth<br />
Jibber jabber<br />
So<br />
on<br />
on<br />
and<br />
jibber<br />
and<br />
on<br />
so forth<br />
Jibber<br />
just jawing<br />
jabber<br />
on and<br />
jibber<br />
Yackety on<br />
Jibber<br />
just<br />
yack<br />
jawing<br />
Ya'll com jabber jibber<br />
Yackety<br />
back<br />
just<br />
yack<br />
jawing<br />
Ya'll com<br />
Yackety<br />
back<br />
yack<br />
Ya'll com back<br />
Mask Writer<br />
GDSII<br />
CATS
Systems<br />
SoC<br />
Silicon<br />
© <strong>Synopsys</strong> 2012 100<br />
System <strong>Design</strong><br />
Verification IP<br />
Implementation<br />
Manufacturing
Classic IC <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 101<br />
Architectural choices, RTL compilation and simulation<br />
(VCS)<br />
Logic synthesis (<strong>Design</strong> Compiler)<br />
Formal verification (Formality)<br />
Generation of test patterns (TetraMAX)<br />
Physical design (IC Compiler)<br />
Physical verification (Hercules)<br />
Layout parasitics extraction (StarRC)<br />
SPICE level simulation of completed design (HSPICE)
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Architectural choices, RTL Compilation and Simulation<br />
(VCS)<br />
© <strong>Synopsys</strong> 2012 102
VCS Overview<br />
VCS supports multiple languages<br />
• Verilog<br />
• VHDL<br />
• C/C++<br />
• SystemC<br />
• SystemVerilog<br />
• OpenVera<br />
• Analog<br />
Intuitive GUI help find bugs quickly<br />
• Assertions<br />
• Testbench<br />
• Coverage<br />
• Post-simulation analysis<br />
© <strong>Synopsys</strong> 2012 103
VCS Features<br />
The most used features<br />
are:<br />
• Tracing the Cause of Failed<br />
Assertion<br />
• Trace drivers and loads of a<br />
signal at any time to see the<br />
drivers and loads that caused a<br />
value change and see all the<br />
drivers/loads that possibly<br />
contributed to a signal value.<br />
RTL and Gate Signal<br />
Comparison<br />
Highlighting the net in gatelevel<br />
schematic and Verilog<br />
© <strong>Synopsys</strong> 2012 104
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Logic Synthesis<br />
(<strong>Design</strong> Compiler)<br />
© <strong>Synopsys</strong> 2012 105
Introduction to <strong>Design</strong> Compiler<br />
<strong>Design</strong> Compiler performs logic synthesis and<br />
optimization of design<br />
• Synthesizes HDL designs into optimized technologydependent<br />
gate-level designs.<br />
• Results in smallest and fastest logical representation of a<br />
given function<br />
• <strong>Design</strong> Compiler supports a wide range of flat and<br />
hierarchical design styles<br />
• Combinational and sequential designs can be optimized for<br />
• timing<br />
• area<br />
• power<br />
© <strong>Synopsys</strong> 2012 106
DC and <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 107<br />
Constraints<br />
IP <strong>Design</strong>Ware<br />
Library<br />
Technology<br />
Library<br />
Symbol Library<br />
SDF<br />
PDEF<br />
Timing<br />
optimization<br />
Area<br />
optimization<br />
Back-annotation<br />
HDL<br />
Datapath<br />
optimization<br />
Test<br />
synthesis<br />
Optimized<br />
gate-level netlist<br />
Place & route<br />
<strong>Design</strong> Compiler<br />
Power<br />
optimization<br />
Timing<br />
closure<br />
Timing & power<br />
analysis<br />
Formal verification
Basic Synthesis <strong>Flow</strong><br />
<strong>Design</strong> rule constraints<br />
set_max_transition<br />
set_max_fanout<br />
set_max_capacitance<br />
compile<br />
write<br />
© <strong>Synopsys</strong> 2012 108<br />
Develop HDL files<br />
Specify libraries<br />
Read design<br />
Define design environment<br />
Set design constraints<br />
Optimize the design<br />
Analyze and resolve design<br />
problems<br />
Save the design database<br />
<strong>Design</strong> optimization constraints<br />
create_clock<br />
set_clock_latency<br />
set_propagated_clock<br />
set_clock_uncertaintly<br />
set_clock_transition<br />
set_input_delay<br />
set_output_delay<br />
set_max_area<br />
check_design<br />
report_area<br />
report_constraint<br />
report_timing
<strong>Design</strong> Compiler Input and Output Files<br />
© <strong>Synopsys</strong> 2012 109<br />
<strong>Design</strong> source<br />
Code<br />
Verilog(.v )<br />
VHDL (.vhd)<br />
Synthesis<br />
scripts (.tcl)<br />
<strong>Design</strong><br />
constraints<br />
(.con, .sdc)<br />
<strong>Design</strong><br />
Compiler<br />
Reports and logs<br />
(text formats)<br />
<strong>Design</strong> database<br />
(.db - <strong>Synopsys</strong> internal<br />
database format)<br />
Gate level Verilog description
<strong>Design</strong> for Test<br />
<strong>Synopsys</strong>' design-for-test (DFT) synthesis<br />
solution (DFT Compiler) – enables scan<br />
insertion within <strong>Design</strong> Compiler<br />
DFT Compiler's integration with <strong>Design</strong><br />
Compiler ensures DFT with optimization of<br />
area, power, and timing constraints, and<br />
predictable timing closure of physically<br />
optimized scan designs.<br />
© <strong>Synopsys</strong> 2012 110
DFT Key Features<br />
One-pass test synthesis<br />
Comprehensive RTL and gate-level DFT design rule checking<br />
Rapid scan synthesis<br />
Adaptive scan technology<br />
Hierarchical scan synthesis<br />
Observe point insertion<br />
Automatic fixing of scan violations (autoFix)<br />
Location-based scan ordering<br />
Timing-based scan ordering<br />
© <strong>Synopsys</strong> 2012 111
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Formal Verification<br />
(Formality)<br />
© <strong>Synopsys</strong> 2012 112
Formality Introduction<br />
Formality checks whether two designs are functionally equivalent or not<br />
Its purpose is to detect unexpected differences that may have been introduced into<br />
a design during development.<br />
<strong>Design</strong> level 1 <strong>Design</strong> level 2<br />
<strong>Design</strong> process<br />
© <strong>Synopsys</strong> 2012 113<br />
Formality<br />
Equivalent<br />
Yes/No ?
Key Concepts<br />
Compare Point<br />
• Primary output of a circuit<br />
• Registers within a circuit<br />
• An input to black boxes within circuit<br />
Logic Cone<br />
• A block of combinational logic which<br />
drives a compare point<br />
© <strong>Synopsys</strong> 2012 114
Equivalence Checking Verification Process<br />
Equivalence checking is a four-phase<br />
process:<br />
• Reading and elaborating language<br />
descriptions into logical representations<br />
• Setting up prompt for verification<br />
• Mapping of corresponding compare points<br />
between pairs of designs (Matching)<br />
• Comparison of logic cones that drive the<br />
compare points (Verification)<br />
© <strong>Synopsys</strong> 2012 115
Input Files of Formality<br />
Formality supports the following input formats:<br />
Input formats Command<br />
Verilog (synthesizable subset) - read_verilog<br />
Verilog (simulation libraries) - read_verilog -vcs<br />
VHDL (synthesizable subset) - read_vhdl<br />
EDIF - read_edif<br />
<strong>Synopsys</strong> binary files - read_db, read_ddc, read_mdb (*)<br />
© <strong>Synopsys</strong> 2012 116
Formality <strong>Flow</strong> Overview<br />
Guidance (Loading of automated setup file)<br />
• The purpose of automated file (.svf) is to help Formality process design changes caused by other<br />
tools, which it should have access to as the changes are made.<br />
Referencing (Specifying the reference design)<br />
• The reference design is the design against which the transformed (implementation) design is<br />
compared.<br />
Implementation (Specifying the implementation design)<br />
• This is the changed design. It is the design correctness that needs to be verified.<br />
Matching (Matching compare points)<br />
• Process of aligning compare points between two designs.<br />
Verification (Verify the <strong>Design</strong>s)<br />
• Process of proving or disproving that compare points are equivalent (have same functionality).<br />
Debug<br />
• During debug the user should determined where and why the comparison results were<br />
unsuccessful.<br />
© <strong>Synopsys</strong> 2012 117
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Generation of Test Patterns<br />
(TetraMAX)<br />
© <strong>Synopsys</strong> 2012 118
Introduction<br />
TetraMAX is a high-speed, high-capacity automatic test<br />
pattern generation (ATPG) tool.<br />
It can generate test patterns that maximize test<br />
coverage while using a minimum number of test vectors<br />
for a wide variety of design types and design flows.<br />
It is well suited for designs of all sizes up to millions of<br />
gates.<br />
© <strong>Synopsys</strong> 2012 119
ATPG Modes<br />
Basic-Scan ATPG, an efficient combinationalonly<br />
mode for full-scan designs<br />
Fast-Sequential ATPG for limited support of<br />
partial-scan designs<br />
Full-Sequential ATPG for maximum test<br />
coverage in partial-scan designs.<br />
© <strong>Synopsys</strong> 2012 120
<strong>Design</strong> <strong>Flow</strong> Using DFT Compiler and<br />
TetraMAX<br />
STIL test protocol<br />
file<br />
Verilog library<br />
© <strong>Synopsys</strong> 2012 121<br />
HDL netlist<br />
<strong>Design</strong> for test<br />
Writing test protocol<br />
<strong>Design</strong> Compiler<br />
TetraMAX ATPG<br />
Compiled,<br />
scanned netlist
TetraMAX <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 122<br />
Models<br />
Netlist<br />
Pre-process netlist<br />
Read netlist<br />
Read Library<br />
Build the model<br />
Perform test design rule<br />
checking(DRC)<br />
Prepare to run ATPG<br />
Run ATPG<br />
Review test coverage<br />
Re-run ATPG<br />
Save test patterns<br />
Test protocol<br />
STL test protocol file
Steps of Running TetraMAX<br />
Reading the netlist<br />
Reading Verilog library models<br />
Building the ATPG model<br />
Performing Test <strong>Design</strong> Rule Checking (Test DRC)<br />
Generating test protocols<br />
© <strong>Synopsys</strong> 2012 123
Test <strong>Design</strong> Rule Checking<br />
Test DRC checks for the following conditions:<br />
Whether the scan chains inputs and outputs are logically connected<br />
Whether all the clocks and asynchronous set/reset pins connected to scan<br />
chain flip-flops are controlled only by primary input ports<br />
Whether the clocks/sets/resets are off when you switch from normal mode<br />
to scan shift mode and again when you switch back to normal mode<br />
Whether any internal multiple-driver nets can be in contention<br />
© <strong>Synopsys</strong> 2012 124
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Static Timing Analysis of Test Patterns<br />
(PrimeTime)<br />
© <strong>Synopsys</strong> 2012 125
Introduction<br />
PrimeTime is a full-chip, gate-level static timing<br />
analysis tool that is an essential part of the<br />
design and analysis flow for today's large chip<br />
designs.<br />
PrimeTime validates the timing performance of<br />
a design by checking all possible paths for<br />
timing violations, without using logic simulation<br />
or test vectors.<br />
© <strong>Synopsys</strong> 2012 126
PrimeTime Inputs and Outputs<br />
Parasitics<br />
Initial timing<br />
reports<br />
© <strong>Synopsys</strong> 2012 127<br />
SDF<br />
Gate-level<br />
netlist<br />
PrimeTime<br />
Restore session in<br />
PrimeTime for further<br />
debugging<br />
Libraries<br />
<strong>Design</strong><br />
Constraints<br />
Saved<br />
session
Using PrimeTime in Physical Synthesis<br />
<strong>Flow</strong><br />
RTL<br />
description<br />
Synthesis<br />
Gate-level<br />
description<br />
Place & Route<br />
Chip layout<br />
description<br />
<strong>Design</strong> sign-off<br />
© <strong>Synopsys</strong> 2012 128<br />
Timing constraints for<br />
resynthesis and logic<br />
optimization<br />
.lcctcl, .sdc<br />
<strong>Design</strong> data<br />
.db, Verilog, VHDL<br />
Path constraints<br />
.sdf<br />
Delay data; detailed<br />
parasitic data for<br />
back-annotation<br />
.sdf; RSPF, DSPF, SPEF, SBPF<br />
Technology<br />
library<br />
PrimeTime<br />
(Static Timing Analysis)<br />
Timing<br />
models<br />
.db<br />
Cell delays, transition<br />
times, capacitance,<br />
wire load models,<br />
design rules,<br />
operating conditions<br />
.tcl<br />
.sdc<br />
.pt<br />
.db, interface logic<br />
models, extracted<br />
timing models<br />
Command-specified<br />
conditions
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Physical <strong>Design</strong><br />
(IC Compiler)<br />
© <strong>Synopsys</strong> 2012 129
Input and Output Files of IC Compiler<br />
Netlist<br />
(.v, .ddc)<br />
Cell Library .db<br />
(.db)<br />
TluPlus,<br />
.map<br />
Tech file<br />
.tf .tf<br />
Milkyway Ref<br />
library<br />
© <strong>Synopsys</strong> 2012 130<br />
IC Compiler<br />
Verilog<br />
(.v)<br />
GDSII<br />
(.gds)<br />
Standard<br />
Parasitics<br />
Exchange<br />
Format<br />
(.spef)
IC Compiler <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 131<br />
Invoke ICC<br />
Data preparation<br />
Floorplanning<br />
Power Planning<br />
Placement<br />
Clock Tree Synthesis<br />
Routing<br />
Finishing<br />
Results (.v, .gds, .spef)
Physical <strong>Design</strong> Steps (1)<br />
Data preparation<br />
• Milkyway design library creation, logic libraries setup and parasitic<br />
models setup, design import.<br />
Floorplanning<br />
• Setting up the core area, top-level ports, and placement sites.<br />
Power Planning<br />
• Rectangular rings creation, power straps creation, etc.<br />
Core Placement and Optimization<br />
• During the placement phase the design's standard cells will be<br />
automatically placed in horizontal placement rows.<br />
• Allows following optimizations: power, optimize_dft, effort, etc<br />
© <strong>Synopsys</strong> 2012 132
Physical <strong>Design</strong> Steps (2)<br />
Core Clock Tree Synthesis and Optimization<br />
• During clock tree synthesis, IC Compiler builds clock trees that meet the clock tree<br />
design rule constraints while balancing the loads and minimizing the clock skew.<br />
Allows the following options: area_recovery, power, optimize_dft, only_cts, etc.<br />
Core Routing and Optimization<br />
• This command performs simultaneous routing and postroute optimization on the<br />
current design. Allows following optimizations: power, size_only, stage,<br />
only_hold_time, only_design_rule etc.<br />
Check DRC (<strong>Design</strong> Rule Checking) and LVS (layout vs. schematic)<br />
Export the design<br />
• Allows following formats: Verilog ,GDS format etc.<br />
© <strong>Synopsys</strong> 2012 133
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Physical Verification<br />
(Hercules)<br />
© <strong>Synopsys</strong> 2012 134
Introduction<br />
Hercules is a hierarchical<br />
physical verification tool<br />
that performs design rule<br />
checking (DRC) and layout<br />
vs. schematic (LVS) on IC<br />
design.<br />
© <strong>Synopsys</strong> 2012 135
Input Files of Hercules<br />
Hercules uses several input files to perform<br />
DRC, LVS, LPE and ERC design verification.<br />
These input files are:<br />
• Database<br />
• Runset file<br />
• Schematic netlist<br />
The primary input file is the runset file.<br />
© <strong>Synopsys</strong> 2012 136
<strong>Design</strong> Database<br />
In the beginning of a Hercules run, primary group<br />
files are created that consist of one file per layer<br />
listed in the ASSIGN section of the runset file.<br />
Read different design databases using:<br />
• GDSII<br />
• GDSOUT<br />
• OASIS<br />
• Milkyway<br />
© <strong>Synopsys</strong> 2012 137
Runset File<br />
Runset file is a control file that instructs<br />
Hercules where to find input data, which checks<br />
to perform and where to write output files.<br />
Separate runsets are typically created for DRC<br />
and LVS.<br />
• A DRC Runset instructs Hercules to check layout files for<br />
errors.<br />
• A LVS Runset instructs Hercules to compare the layout<br />
netlist to the schematic netlist of a design.<br />
© <strong>Synopsys</strong> 2012 138
Schematic Netlist<br />
The schematic Netlist file is used during LVS comparison.<br />
It provides complete net information with each cell.<br />
If schematic netlist is in CDL, NetTran will translate it to<br />
Hercules format.<br />
nettran –verilog Johnson_count.v –cdl-a-cdl-s-sp-S-verilog-b1 VDD –verilog-b0 VSS\<br />
-rootCell Johnson_count –sp ./saed90nm.cdl –outName Johnson_count.sp<br />
© <strong>Synopsys</strong> 2012 139
7/14/10<br />
Netlist Translation<br />
Hercules uses the NetTran utility to translate the netlist<br />
between different formats.<br />
(e.g. Verilog to SPICE, SPICE to Hercules netlist format)<br />
© <strong>Synopsys</strong> 2012 140<br />
INPUT<br />
OUTPUT<br />
Hercules<br />
SPICE SPICE<br />
CDL Netlist<br />
Verilog<br />
Verilog NetTran NetTran EDIF<br />
EDIF EDIF3<br />
EDIF3 Hercules<br />
(default)<br />
Hercules<br />
Silos
DRC <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 141<br />
Physical<br />
database<br />
Hercules<br />
(DRC run)<br />
Output Summary files<br />
(Error database)<br />
Input DRC Runset<br />
runset.ev
LVS <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 142<br />
Physical<br />
database<br />
Hercules<br />
(LVSrun)<br />
Output Summary files<br />
(Error database)<br />
Input LVS Runset<br />
runset.ev
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
Layout Parasitics Extraction<br />
(StarRC)<br />
© <strong>Synopsys</strong> 2012 143
StarRC Overview<br />
StarRC is a layout parasitic extraction tool. StarRC can be used at any<br />
physical design cycle stage to extract accurate parasitics.<br />
StarRC reads OpenAccess, Milkyway, LEF/DEF or Hercules connected<br />
databases directly, without external processing.<br />
Extracted parasitics can be written into the <strong>Synopsys</strong> centralized Milkyway<br />
database for use by analysis and optimization tools.<br />
Because StarRC gracefully handles designs with layout versus schematic<br />
(LVS) violations, including opens and shorts, timing convergence can be<br />
ensured before the physical verification cycle begins.<br />
© <strong>Synopsys</strong> 2012 144
Inputs and Outputs of StarRC<br />
TCAD_GRD_FILE<br />
saed90nm_9lm.nxtgrd<br />
MAPPING_FILE<br />
tech2itf.map<br />
star_cmd<br />
rcx_cmd<br />
• TCAD_GRD_FILE -File containing the modeled layers of a circuit.<br />
• MAPPING_FILE-File containing physical layer mapping information between the<br />
input database and the specified TCAD_GRD_FILE<br />
• star_cmd -ASCII file containing StarRC commands that controls extraction functions<br />
© <strong>Synopsys</strong> 2012 145<br />
StarRC<br />
.spf
Input and Output Formats of StarRC<br />
StarRC supports these industry-standard formats:<br />
Input formats<br />
• LEF(Layout Exchange Format)/DEF(<strong>Design</strong> Exchange Format)<br />
• GDSII<br />
• Milkyway<br />
Output Netlist Formats<br />
• SPICE<br />
• <strong>Synopsys</strong> Binary Parasitic Format (SBPF)<br />
• Standard Parasitic Exchange Format (SPEF)<br />
• Detailed Standard Parasitic Format (DSPF)<br />
StarRC accepts input from GDSII, LEF/DEF, and IC Compiler formats.<br />
© <strong>Synopsys</strong> 2012 146
StarRC Extraction <strong>Flow</strong><br />
StarRC Command File<br />
Technology data<br />
(layer physical information)<br />
*.nxtgrd<br />
Mapping file (used to map<br />
layers used in StarRC to<br />
technology layers)<br />
© <strong>Synopsys</strong> 2012 147<br />
Milkyway<br />
database<br />
OR<br />
Physical Database<br />
GDSII<br />
StarRC<br />
Parasitic Netlist<br />
Schematic<br />
Netlist
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
SPICE-level Simulation of Completed <strong>Design</strong><br />
(HSPICE)<br />
© <strong>Synopsys</strong> 2012 148
HSPICE Features<br />
HSPICE supports:<br />
• Analog/RF/mixed-signal IC <strong>Design</strong><br />
• Verilog-A Behavioral Modeling<br />
• <strong>Design</strong> For Yield- Process Variability<br />
and MosRa Device Reliability Analysis<br />
• Transient Noise Analysis<br />
• Cell and Memory Characterization<br />
© <strong>Synopsys</strong> 2012 149
Input and Output Files of HSPICE<br />
Netlist<br />
Measure<br />
Analyze type<br />
Options<br />
Model file<br />
© <strong>Synopsys</strong> 2012 150<br />
HSPICE<br />
Waveforms<br />
(*.tr)<br />
Measurement Results<br />
(*.mt)
<strong>Synopsys</strong> <strong>Design</strong> <strong>Flow</strong><br />
© <strong>Synopsys</strong> 2012 151<br />
Architectural choices, RTL compilation and simulation<br />
(VCS)<br />
Logic synthesis (<strong>Design</strong> Compiler)<br />
Formal verification (Formality)<br />
Generation of test patterns (TetraMAX)<br />
Physical design (IC Compiler)<br />
Physical Verification (Hercules)<br />
Layout Parasitics Extraction (StarRC)<br />
SPICE-level simulation of completed design (HSPICE)
© <strong>Synopsys</strong> 2012 152<br />
Thank You