03.04.2013 Views

Synopsys Design Flow

Synopsys Design Flow

Synopsys Design Flow

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!