Chapter 1
Chapter 1
Mike Butts
Synopsys
Prof. Kurt Keutzer
Dr. Serdar Tasiran
EECS
UC Berkeley
Mike Butts
1
Design Process
Verify:
verify the Implement:
correctness of refine the
design and design
implementation through all
phases
Kurt Keutzer 2
1
Design Verification
HDL
specification
RTL manual
Synthesis design
netlist Is the
Library/
module logic design
generators optimization consistent
with the original
netlist specification?
Kurt Keutzer 3
Implementation Verification
HDL
RTL manual
Synthesis design
netlist a 0
1
d
q
Is the
b
Library/
logic
s clk
implementation
module
generators optimization consistent
with the original
netlist
a
b
0
1
d
q design intent?
s clk
physical Is what I
design implemented
what I
layout
wanted?
Kurt Keutzer 4
2
Manufacture Verification (Test)
HDL Is the
manufactured
RTL manual circuit
Synthesis design
consistent
netlist a 0 d
with the
implemented
q
b 1
Library/
module logic
s clk
design?
generators optimization
a
b
0
1
d
q
Did they
netlist s clk
build
what I
physical wanted?
design
layout
Kurt Keutzer 5
Design Verification
HDL
specification
RTL manual
Synthesis design
netlist Is the
Library/
module logic design
generators optimization consistent
with the original
netlist specification?
Kurt Keutzer 6
3
Verification is an Industry-Wide Issue
Design
Design Teams
Teams are
are Desperate
Desperate for
for Faster
Faster Simulation
Simulation
Kurt Keutzer 7
Verification Gap
1,000 10,000
x
100 x x 1,000
x x x
x
2.5µ 10 21%/Yr. compound 100
Productivity growth rate
1 10
1991
1999
2001
2003
2007
1987
1989
1993
1995
1997
2005
2009
1983
1985
1981
Source:
SEMATECH
Kurt Keutzer 8
4
Why the Gap?
bugs
=
chip
Kurt Keutzer 9
10,000,000 trs 1 1
X X
chip 10 10,000
100 bugs
=
chip
Kurt Keutzer 10
5
Raising the Level of Abstraction
10,000,000 trs 1 1
X X
chip 100 10,000
10 bugs
= this year!!
chip
Kurt Keutzer 11
100,000,000 trs 1 1
X X
chip 100 10,000
100 bugs
= within 5 years!!
chip
Kurt Keutzer 12
6
The Verification Bottleneck
100 x 10,000 =
10B 2002 1 million times
more Simulation Load
100M 1996
1M
1990
100k 1M 10M
100x Gate Count
Kurt Keutzer 13
Kurt Keutzer 14
7
Aspects of Design Verification
Event Driven
Specification
Event-driven Simulation – Interactive Phase
Validation
– High flexibility
Functional
– Quick turnaround time
Verification
(interactive) – Good debug capabilities
Cycle -based simulation
Cycle-base
Functional simulation – Regression Phase
Verification – Highest performance
(regressions) – Highest capacity
Emulation and Acceleration
In-System Emulation – In-System Verification
Verification
– Highest performance
– Highest Capacity
Implementation – Real system environment
Equivalence Checking
Verification
Kurt Keutzer 15
Kurt Keutzer 16
8
Simulation: The Current Picture
Simulation Simulation
Monitors
driver engine
SHORTCOMINGS:
• Hard to generate high quality input stimuli
Kurt Keutzer 17
Simulation
Simulation Drivers
Simulation Monitors
engine
driver
Symbolic
simulation
Diagnosis of
Vector Coverage
Input stimuli consistent with circuit generation
unverified
portions
analysis
Kurt Keutzer 18
9
Simulation
Simulators
Simulation Monitors
engine
driver
Symbolic
simulation
• VCS
• Affirma
• Verilog-XL, ...
CYCLE-BASED
• Cyclone VHDL
• Cobra, ...
HYBRID
• VSS
Kurt Keutzer 19
Simulation
Monitors
Simulation Monitors
engine
driver
Symbolic
simulation
Kurt Keutzer 20
10
Types of software simulators
Circuit simulation
– Spice, Advice, Hspice
– Timemill + Ace, ADM
Event-driven gate/RTL/Behavioral simulation
– Verilog - VCS, NC-Verilog, Turbo-Verilog, Verilog-XL
– VHDL - VSS, MTI, Leapfrog
Cycle-based gate/RTL/Behavioral simulation
– Verilog - Frontline, Speedsim
– VHDL - Cyclone
Domain-specific simulation
– SPW, COSSAP
Architecture-specific simulation
Kurt Keutzer 21
Event-driven simulation
Key elements:
– Circuit models and libraries
• cells
• interconnect
– Event-wheel
• Maintains schedules of events
• Enables sub-cycle timing
Advantages
– Timing accuracy
– Handles asynchronous
Disadvantage - performance and data management
Kurt Keutzer 22
11
Event versus cycle-based simulation
D Q
data D Q
clock QN Combo
Logic clock QN
D Q
clock QN
clock
Kurt Keutzer 23
Kurt Keutzer 24
12
Gate-level Event-driven Sim Acceleration
Event Interconnect
distribution
– Much work in the 1980’s: order 10X, not
100X
Performance
Event Scheduler
Netlist Fanout
– “7-25X HDL simulator”, “500 to 5K cps”
(NSIM)
Usability
– Easy to use, quick compilation
M. Butts - Synopsys – Full timing and states
Kurt Keutzer 25
M. Butts - Synopsys
Kurt Keutzer 26
13
Gate-level Cycle-based Acceleration
M. Butts - Synopsys
Kurt Keutzer 27
M. Butts - Synopsys
Kurt Keutzer 28
14
Gate-level Cycle-based Acceleration
Much faster than SW or event-driven accelerator
: Runs actual code and data, in actual target systems
Harder to use than SW or event-driven accelerator, but easier than emulator
Severe restrictions on design style
- Purely synchronous design OK, else No.
Expensive, complex, proprietary HW, SW
- Custom chips, interconnect, PCBs, connectors, chassis,
instrumentation
- Compiler is substantial effort to develop & maintain
Isolated from simulation, separate environment, proprietary simulator
Conclusion:
– Good solution for large fully synchronous projects that can afford
it
– Not a mainstream technology
M. Butts - Synopsys
Kurt Keutzer 29
Kurt Keutzer 30
15
FPGAs as logic evaluators
Today: 2 trillion gate evaluations per second per FPGA (200K gates, 10M cps)
– Growing with Moore’s Law as designs do
– $1.5B industry behind it (XLNX+ALTR+ACTL)
Potent tool for logic verification and validation
How best to put the FPGA to use?
M. Butts - Synopsys
Kurt Keutzer 31
Ultra-large “FPGA”
Live hardware, gate-for-gate.
Entire design or major module is
flattened, and compiled at once into
multi-FPGA form.
Logically static circuit-switched
interconnect.
In-circuit or vector-driven
Regular clock rate, > 1M cps.
Kurt Keutzer 32
16
Verification using Emulation
RTL or Gate
design System Hardware
– Customized parallel
processor system for
emulating logic
Emulation Box – In-circuit target interface
Compiler
Software Compiler
– Mapping RTL & Gate
designs to emulator
Mapper Runtime Software
– C-API
– Open SW architecture for
SBUS i/f tight integration
– Flexible modes of stimulus
uP
Kurt Keutzer 34
17
Logic Emulation SW M. Butts - Synopsys
Kurt Keutzer 35
Cadence/Quickturn Mercury
– 10M gates, XC4000XL, 2-level time-muxed partial crossbar
interconnect
– Each board has a PowerPC: Hybrid emulator + Verilog HW
accelerator
Ikos VirtuaLogic
– 5M gates, XC4000XL, nearest-neighbor time-multiplexed
interconnect
– Virtual wires compiler analyzes clock trees to synchronize time-
muxing
Mentor/Meta Celaro
– Custom FPGAs, not available in US
Axis Xcite
– FPGAs on PCI cards emulate HDL structures
– Tightly coupled to proprietary Verilog simulator
Simutech RAVE
– FPGA cards connected to time-multiplexed bus interconnect
Kurt Keutzer 36
18
Emulation + Accelerated Simulation
M. Butts - Synopsys
Event Backplane
XBar XBar
QT Mercury SimServer
Bauer, Bershteyn, Kaplan, Vyedin. A Reconfigurable Logic Machine for
Fast Event-Driven Simulation, Proc. 35th DAC, 1998.
– Multiprocessing HW-accelerated Verilog simulator + emulator
– Automatic HDL partitioning: synthesizable modules to emulator,
behavioral modules to PowerPC CPUs (up to 10)
– Accelerated time wheel, event detection in emulator FPGAs
Kurt Keutzer 37
M. Butts - Synopsys
Kurt Keutzer 38
19
The Emulation Interconnect Problem
M. Butts - Synopsys
10000000 100000
1000000
FPGA capacity 10000 FPGA capacity is emulation usage:
Pins needed 8 gates / 4-LUT+FF, 75% packing.
100000
Pins needed is for emulation usage:
1000 p = 2.75g 0.58
10000 Package Pins pins Package pins are Xilinx FPGA IOBs
gates
(1991- 2000, extrapolated afterwards).
1000 100
1990 1995 2000 2005 2010
– But that’s only a linear effect; it does not change the doubling time.
Kurt Keutzer 39
Kurt Keutzer 40
20
Approaches to Design Verification
Software Simulation
– Application of simulation stimulus to model of circuit
Hardware Accelerated Simulation
– Use of special purpose hardware to accelerate
simulation of circuit
Emulation
– Emulate actual circuit behavior - e.g. using FPGA’s
Rapid prototyping
– Create a prototype of actual hardware
Formal verification
– Model checking - verify properties relative to model
– Theorem proving - prove theorems regarding
properties of a model
Kurt Keutzer 41
u Need low-
low- cost, instrument-
instrument- like system prototyping environment
u Must be well-
well- integrated into overall component-
component - based flow
Aptix System Explorer™ Aptix System Explorer™
MP3C or MP4
Development Software
Sun, HP
Debug Environment
Ethernet
Kurt Keutzer 42
21
Rapid Prototyping of ASICs and SoCs
Target-specific tools
– ASIC/core+FPGA:
Philips/VLSI Velocity, ARM
($5K)
– FPGA+RAM: Altera/ARC
“SoC” board (100KG, $5K)
GP tool
– Aptix : daughtercards, prog.
breadboard, > $100K
M. Butts - Synopsys
Kurt Keutzer 43
Kurt Keutzer
M. Butts - Synopsys 44
22
Approaches to Design Verification
Software Simulation
– Application of simulation stimulus to model of circuit
Hardware Accelerated Simulation
– Use of special purpose hardware to accelerate
simulation of circuit
Emulation
– Emulate actual circuit behavior - e.g. using FPGA’s
Rapid prototyping
– Create a prototype of actual hardware
Formal verification
– Model checking - verify properties relative to model
– Theorem proving - prove theorems regarding
properties of a model
Kurt Keutzer 45
Simulation Simulation
Monitors
driver engine
al
ntion Symbolic
nve simulation
Co el
v
No
Diagnosis of
Vector Coverage
unverified
generation analysis
portions
Kurt Keutzer 46
23
How to make it smarter: Intelligent Simulation
Simulation Simulation
Monitors
driver engine
nal Symbolic
v entio
n simulation
Co el
v
No
Diagnosis of
Vector Coverage
unverified
generation analysis
portions
Kurt Keutzer 47
Simulation
Symbolic Simulation
Simulation Monitors
engine
driver
Symbolic
simulation
Kurt Keutzer 48
24
Simulation
Symbolic Simulation
Simulation Monitors
engine
driver
Symbolic
simulation
INNOLOGIC: Vector
Diagnosis of
Coverage
unverified
generation analysis
BDD-based symbolic Verilog simulators portions
l Can symbolize time, e.g., event occurring after time T, 10 < T < 20.
Simulation
Symbolic Simulation
Simulation Monitors
engine
driver
Symbolic
simulation
Diagnosis of
Vector Coverage
INNOLOGIC: Limitations generation
unverified
portions
analysis
l Capacity limits:
– ~ 1 million gate equivalents
– # of symbols - design dependent.
• < 50 in worst cases (multipliers)
• several thousand in the best cases
(memory, data movement).
• When out of memory, turn symbols into binary
values - coverage lost but simulation
completes.
l Roughly 10 times slower than Verilog-XL
l Can’t use in conjunction with Vera or Verisity currently.
è Definitely worth a shot: Extra cost of symbols offset
quickly, doesn’t require major change in framework.
è Full benefits of technology have not been realized yet.
Kurt Keutzer 50
25
Simulation
Coverage Analysis
Simulation Monitors
engine
driver
Symbolic
simulation
Why? Vector
generation
Diagnosis of
unverified
Coverage
analysis
portions
• To quantify comprehensiveness
of validation effort
– Tells us when not to stop
– Even with completely formal methods, verification
is only as complete as the set of properties checked
• To identify aspects of design not adequately exercised
– Guides test/simulation vector generation
• Coordinate and compare verification efforts
– Different sets of simulation runs
– Different methods: Model checking, symbolic
simulation, ...
Kurt Keutzer 51
Kurt Keutzer 52
26