Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lecture 13
Alessandra Nardi
Outline
Conventional design and verification flow
review
Verification Techniques
Simulation
Formal Verification
Static Timing Analysis
Behav. Simul.
Logic Synth.
Front-end
Gate-level Net.
Gate-Lev. Sim.
Back-end
Floorplanning
Parasitic Extrac.
Place & Route
Layout
Terminology
HDL: Hardware Description Language
E.g.: Verilog, VHDL
Behavioral HDL
It is HDL written for behavioral synthesis: it describes the intent and the algorithm
behind the design without specifying the cycle to cycle behavior
Behavioral synthesis
It tries to optimize the design at architectural level with constraints for clock,
latency and throughput. The output is RTL level design with clocks, registers and
buses.
Logic synthesis
It automatically converts RTL code into gates without modifying the implied
architecture. It tries to optimize the gate-level implementation to meet performance
(timing, area.) goals
HDL Simulators
Code Coverage
RTL
Gate-level Simulators
Physical
Domain
Layout vs
Schematic (LVS)
Verification
Gate-level
Static Timing
Analysis
Verification Techniques
Goal: Ensure the design meets its functional and timing
requirements at each of these levels of abstraction
Behavioral
RTL
Gate-level (pre-layout and post-layout)
Switch-level
Transistor-level
Classification of Simulators
Logic Simulators
HDL-based
Event-driven
Cycle-based
Emulator-based
Schematic-based
Gate
System
Classification of Simulators
HDL-based:
HDL-based Design and testbench described using
HDL
Event-driven
Cycle-based
Schematic-based:
Schematic-based Design is entered graphically using
a schematic editor
Emulators:
Emulators Design is mapped into FPGA hardware for
prototype simulation. Used to perform
hardware/software co-simulation.
Logic Synthesis
Cycle-based simulation
Event-driven Simulation
Event: change in logic value at a node, at a
certain instant of time (V,T)
Event-driven: only considers active nodes
Efficient
Event-driven Simulation
1
0
D=2
Events:
Input: b(1)=1
Output: none
1
0
0
1
D=2
1
0
3
Events:
Input: b(1)=1
Output: c(3)=0
Event-driven Simulation
Uses a timewheel to manage the relationship
between components
Timewheel = list of all events not processed
yet, sorted in time (complete ordering)
When event is generated, it is put in the
appropriate point in the timewheel to ensure
causality
Event-driven Simulation
1
D=2
0
1
1
0
D=1
0
5
e(4)=0
b(1)=1
d(5)=1
d(5)=1
c(3)=0
d(5)=1
d(5)=1
e(6)=1
Cycle-based Simulation
Take advantage of the fact that most digital
designs are largely synchronous
L
a
t
c
h
e
s
Boundary Node
Internal Node
L
a
t
c
h
e
s
Cycle-based Simulation
Compute steady-state response of the circuit
at each clock cycle
at each boundary node
L
a
t
c
h
e
s
Internal Node
L
a
t
c
h
e
s
Event-driven:
Each internal node
Need scheduling and
functions may be
evaluated multiple
times
Abstraction
Cycle-based
Simulator
Event-driven
Simulator
SPICE
.001x
1x
Performance and Capacity
10x
Simulation Testplan
Simulation
Write test vectors
Run simulation
Inspect results
Verification - Simulation
Consistency: same testbench at each level of abstraction
Behavioral
RTL Design
Testbench
Simulation
Gate-level Design
(Pre-layout)
Gate-level Design
(Post-layout)
Formal Verification
Can be used to verify a design against a reference design
as it progresses through the different levels of abstraction
Verifies functionality without test vectors
Three main categories:
Model Checking: compare a design to an existing set of logical
properties (that are a direct representation of the specifications of
the design). Properties have to be specified by the user (far from
a push-button methodology)
Theorem Proving: requires that the design is represented using a
formal specification language. Present-day HDL are not
suitable for this purpose.
Equivalence Checking: it is the most widely used. It performs an
exhaustive check on the two designs to ensure they behave
identically under all possible conditions.
Latches
Combinational
Logic
Latches
Basic concepts:
Look for the longest topological path
Discard it if it is false
Conventional Simulation
Methodology Limitations
Increase in size of design significantly impact the
verification methodology in general
Simulation requires a very large number of test vectors for
reasonable coverage of functionality
Test vector generation is a significant effort
Simulation run-time starts becoming a bottleneck
New techniques:
Static Timing Analysis
Cycle-based simulation
Formal Verification
RTL
Cycle-based Sim.
Logic Synthesis
Testbench
Gate-level netlist
Event-driven Sim.
Formal
Verification
Static Timing
Analysis
Summary
Conventional design and verification flow review
Verification Techniques
Simulation
Behavioral, RTL, Gate-level, Switch-level, Transistor-level
Formal Verification
Static Timing Analysis
More issues
System Level Simulation (Hardware/Software
Codesign)
CoCentric System Studio Synopsys
Virtual Component Co-Design (VCC) Cadence
Design Syst.
Mixed-Signal Simulation
Verilog-AMS