randal e. bryant carnegie mellon university symsim ‘02 symbolic simulation and its connection to...

56
Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation Symbolic Simulation and its and its Connection to Connection to Formal Verification Formal Verification http://www.cs.cmu.edu/~bryant

Upload: melanie-young

Post on 17-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

Randal E. Bryant

Carnegie Mellon University

SymSim ‘02

Symbolic SimulationSymbolic Simulationand itsand its

Connection toConnection toFormal VerificationFormal Verification

http://www.cs.cmu.edu/~bryant

Page 2: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 2 – SymSim ’02

Symbolic SimulationSymbolic Simulation

IdeaIdea Encode set of values symbolically Evaluate system operation over these values

EffectEffect In single run, compute information that would otherwise

require multiple simulation runs If do it right, can even be used for formal verification

BlackBox

a

b

a & bIn0

In1

Out

Page 3: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 3 – SymSim ’02

Advantages of Symbolic SimulationAdvantages of Symbolic Simulation

Relative to better known formal verification techniques symbolic model checking

Modeling CapabilitiesModeling Capabilities Can use wide variety of circuit models

Including ones requiring event scheduling

EfficiencyEfficiency Hybrid between symbolic and conventional simulation

Reduce coverage to make tractable

Exploit abstraction capabilities of XForm of abstract interpretation

Page 4: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 4 – SymSim ’02

Categorization #1Categorization #1

Verification ObjectiveVerification Objective Accelerated Simulation

Get more simulation done in less time

Rigorous, formal verificationDon’t trust anything that hasn’t been proven

AcceleratedSimulation

Rigorous FormalVerification

Objective

Page 5: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 5 – SymSim ’02

Categorization #2Categorization #2

Modeling LevelModeling Level Abstract away as much as possible

Especially data values & operations

Boolean gate / RTLFocus of 99% of verification research

TransistorChallenge to have tractable but accurate

model

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

Page 6: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 6 – SymSim ’02

Symbolic Simulation LandscapeSymbolic Simulation Landscape

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

Auto-matedDeduc-

tion

SymbolicTrajectoryEvaluation

ForwardModel

CheckingCommercial

Tools

Switch-Level

TimingSim.

ChrisWilson’sSimulator

Page 7: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 7 – SymSim ’02

Automated DeductionAutomated Deduction

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

Auto-matedDeduc-

tion

Page 8: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 8 – SymSim ’02

Abstracting DataAbstracting Data

View Data as Symbolic “Terms”View Data as Symbolic “Terms” No particular properties or operations

Except for equations: x = y

Can store in memories & registers Can select with multiplexors

ITE: If-Then-Else operation

x0x1x2

xn-1

x

1

0

xy

p

ITE(p, x, y)1

0

xy

T

x1

0

xy

F

y

Page 9: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 9 – SymSim ’02

Abstraction Via Uninterpreted FunctionsAbstraction Via Uninterpreted Functions

For any Block that Transforms or Evaluates Data:For any Block that Transforms or Evaluates Data: Replace with generic, unspecified function Also view instruction memory as function

Reg.File

IF/ID

InstrMem

+4

PCID/EX

AL

U

EX/WB

=

=

Rd

Ra

Rb

Imm

Op

Adat

Control Control

F1

F 2

F3

Page 10: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 10 – SymSim ’02

ALU

Ra

Rb

T = 0xa

xb

ALU

Ra

Rb

T = 1xa

xb

f

Term-Level Symbolic SimulationTerm-Level Symbolic Simulation

ALU

Ra

Rb

T = 2xa

xb

f f

ALU

Ra

Rb

T = 3xa

xb

f f f

Simulator OperationSimulator Operation Register states are term-level expressions

Denoted by pointers to nodes in Directed Acyclic Graph (DAG)

Simulate each cycle of circuit by adding new nodes to DAGBased on circuit operations

Construct DAG denoting correctness condition

Page 11: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 11 – SymSim ’02

Logical FormulaLogical Formula Integer Values

Solid linesUninterpreted functions

» Integer variables If-Then-Else operation

Boolean ValuesDashed LinesUninterpreted predicates

» Propositional variablesLogical connectivesEquations & inequalities

TaskTask Determine whether formula is universally valid

True for all interpretations of variables and function symbols

Resulting Decision ProblemResulting Decision Problem

=

f

T

F

T

F

fT

F

=

e1

e0x0

d0

Page 12: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 12 – SymSim ’02

Deduction-Based VerificationDeduction-Based Verification

Automatic Theorem ProversAutomatic Theorem Provers Some of the earliest work in formal hardware verification

Gordon ‘83, Hunt ‘85, …

Heavy focus on rigor Strong abstraction capabilities

Can selectively apply different levels of abstraction

Increasing Degree of AutomationIncreasing Degree of Automation Burch & Dill, CAV ‘94

Implement & tune decision procedure to match modeling needsAutomate generation of simulation relation

» For pipelined microprocessors

Active research areaBut, not focus of this talk

Page 13: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 13 – SymSim ’02

Forward Model CheckingForward Model Checking

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

ForwardModel

Checking

Page 14: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 14 – SymSim ’02

Forward ReachabilityForward Reachability

Determine set of all reachable states of circuit Key step in model checking

Many (but not all) properties can be checked by some form of reachability computation

LoopControl

ImageCompu-tation

SetUnion =Reached

States

InitialState

Circuit Behavior

Page 15: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 15 – SymSim ’02

AA

0 /1

Set Operations

AA

BB

Union

AA

BB

Intersection

Characteristic Function Representation of SetCharacteristic Function Representation of SetConceptConcept

A {0,1}n

Set of bit vectors of length n

Represent set A as Boolean function A of n variables

X A if and only if A(X ) = 1

Page 16: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 16 – SymSim ’02

LoopControl

ImageCompu-tation

SetUnion =Reached

States

InitialState

Circuit Behavior

Forward Reachability via Characteristic FunctionsForward Reachability via Characteristic Functions

Model system behavior as transition relation (s,s) = 1 when possible to change from state s to state s in

one step Powerful, but expensive approach

LoopControl

RelationalCross

Product

BooleanOR =Reached

States

InitialState

Transition Relation

Page 17: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 17 – SymSim ’02

Parametric Representation of SetParametric Representation of Set

ConceptConcept A {0,1}n

Set of bit vectors of length nMust be nonempty

Represent set A as set of n Boolean functions FA

Set indicated by function imagesX A if and only if for some Y,

FA(Y ) = X

Not unique Various algorithms to generate

Set OperationsSet Operations Not clear how to do these!

FAYY FFAA((YY ) )

Page 18: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 18 – SymSim ’02

Parametric Representation of Next State SetParametric Representation of Next State Set

One step of symbolic simulation generates parametric form of image computation

Set of states X such that X = (X) for some state X A

(F(FAA((YY )) ))FAYY SymbolicSim.

Gate-Level Circuit

Page 19: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 19 – SymSim ’02

LoopControl

ImageCompu-tation

SetUnion =Reached

States

InitialState

Circuit Behavior

Forward Reachability via Parametric Representation #1Forward Reachability via Parametric Representation #1

Coudert & Madre ‘89Among earliest work on symbolic reachability

Converted to characteristic function to perform Boolean operations

Loses advantage of symbolic simulation

LoopControl

SymbolicSim.

BooleanOR =Reached

States

InitialState

Gate-Level Circuit

A

to

FA

FA

to

A

Page 20: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 20 – SymSim ’02

LoopControl

ImageCompu-tation

SetUnion =Reached

States

InitialState

Circuit Behavior

Forward Reachability via Parametric Representation #2Forward Reachability via Parametric Representation #2

Amit Goel, CMU ‘02 Generate canonical parametric form from any other

parametric form Algorithm due to Coudert, Robert Jones

New algorithm to compute set union in parametric form Does not generate characteristic function explicitly or implicitly

LoopControl

SymbolicSim.

Param.Union =Reached

States

InitialState

Gate-Level Circuit

Rep

aram

eter

ize

Page 21: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 21 – SymSim ’02

Some ResultsSome Results

ComparisonComparison VIS with IWLS partitioning & ordering of transition relation

Based on characteristic functions

Boolean Functional VectorsBased on parametric representation

PerformancePerformance Big improvement for some benchmarks

Page 22: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 22 – SymSim ’02

Symbolic Trajectory EvaluationSymbolic Trajectory Evaluation

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

SymbolicTrajectoryEvaluation

Page 23: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 23 – SymSim ’02

Symbolic Trajectory EvaluationSymbolic Trajectory Evaluation

FormulationFormulation Bryant & Seger (1990) View symbolic simulator as form of model checker

For limited class of LTL formulasAbstract states with ternary { 0, 1, X } logic

ExtensionsExtensions Enlarge class of safety properties

Seger (1995), Jain (1997), Chou (1999)

Add fairness“Generalized Symbolic Trajectory Evaluation”Yang & Seger (2000)All -regular properties

Page 24: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 24 – SymSim ’02

STE ExampleSTE Example

SpecificationSpecification

If apply input “a” Then four cycles later, will get output “a”

N is “next-time” operatorSimilar to “X” in other temporal logics

Din Dout

4-Bit Shift Register

Din = a NNNN Dout = a

Page 25: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 25 – SymSim ’02

Verification by STEVerification by STE

DinX

DoutX X X T = 0X

Dina

DoutX X X X T = 1X

DinX

DoutX a X X T = 2X

DinX

DoutX X a X T = 3X

DinX

DoutX X X a T = 4a

Din = a NNNN Dout = a

aAssert

Check

Page 26: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 26 – SymSim ’02

Mathematical Basis for STEMathematical Basis for STE

Partially Ordered State ModelPartially Ordered State Model

Monotonic Circuit BehaviorMonotonic Circuit Behavior Any 0/1 behavior observed with all-X initial state will occur

for arbitrary initial state Subtle details in simulator implementation

DinX

DoutX X X T = 0X

X

0 1 Complete Information

Incomplete Information

Page 27: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 27 – SymSim ’02

Compare: Model Checking with Characteristic FunctionsCompare: Model Checking with Characteristic Functions

Encode Entire System State SymbolicallyEncode Entire System State Symbolically Two Boolean variables per state bit Impractical to model systems with very large memories Typically verify models with reduced data widths and

memory capacities

s0 s1 s2 s3i Current State

s0’ s1’ s2’ s3’i’ Next State

Transition Relation

Page 28: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 28 – SymSim ’02

Performance of STEPerformance of STE

Key PropertyKey Property Use symbolic variables only to encode input and (part of)

initial state Verification complexity depends on complexity of

specification, not of system Can verify systems containing large memories

Industrial Applications of STEIndustrial Applications of STE Motorola: Verify variety of memory subsystems Intel: Block-level verification

Page 29: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 29 – SymSim ’02

Increasing STE Expressive PowerIncreasing STE Expressive Power

SpecificationSpecification

Graphical notation more expressive and intuitive than textual Allows arbitrary number of idle cycles between inputs Implemented with simple fixed-point operation

Din Dout

4-Bit Stoppable Shift Register

iRdy

Assert

Check

iRdy = 1Din = a

iRdy = 0

iRdy = 1

iRdy = 0

iRdy = 1

iRdy = 0

iRdy = 1

iRdy = 0

iRdy = 1

Dout = d

Page 30: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 30 – SymSim ’02

RAM Verification by STERAM Verification by STE

SpecificationSpecification Perform write with address a Perform arbitrary number of reads, or operations with a different

address Perform read with address a

Should get value d on Dout

Verification requirements for 2Verification requirements for 2mm-bit memory-bit memory Constant number of iterations O(m) Boolean variables

Din

DoutWrite

Addr

Check

Addr = aWrite = 1Din = d

Dout = dWrite = 0

Addr a

Addr = aWrite = 0

Page 31: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 31 – SymSim ’02

Generalized STEGeneralized STE

Yang & Seger (2000)

Extends Class of Trajectory GraphsExtends Class of Trajectory Graphs Arbitrary graph structure

Adds Fairness ConstraintsAdds Fairness Constraints Require that specified arcs be traversed infinitely often

Very ExpressiveVery Expressive -regular languages

Not Directly Comparable to CTL Model CheckingNot Directly Comparable to CTL Model Checking Cannot express existential properties in GSTE Cannot describe path properties in CTL

Page 32: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 32 – SymSim ’02

Chris Wilson’s SimulatorChris Wilson’s Simulator

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

ChrisWilson’sSimulator

Page 33: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 33 – SymSim ’02

Wilson’s Symbolic SimulatorWilson’s Symbolic Simulator

Chris Wilson, PhD, Stanford (2001)

Less Pessimistic X HandlingLess Pessimistic X Handling Can verify simple forms of data propagation

Automatic Variable ClassificationAutomatic Variable Classification When to use X’s, and when to use symbols Major headache for users of other symbolic simulators

Too many get X’s for check valuesToo few BDD blowup

Integrate BDDs with Explicit Case SimulationIntegrate BDDs with Explicit Case Simulation When BDDs get too big, start enumerating variable values

rather than encoding them symbolically Guarantees useful partial results

Page 34: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 34 – SymSim ’02

Tagged X ValuesTagged X Values

Can Tag X with LiteralCan Tag X with Literal Xa, Xa, Xb, Xb, etc.

Allow Limited Propagation of TagsAllow Limited Propagation of Tags

When value depends on multiple tags, revert to regular X

Handles Simple Data PropagationHandles Simple Data Propagation Data moved across busses, stored in registers, passed

through multiplexors

XXaa

XXaa00

XXaa

11 XXaa

XXaa

00 00

XXaa

XXbbXX

Page 35: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 35 – SymSim ’02

Automatic Variable ClassificationAutomatic Variable Classification

Two Ways to Represent Symbolic ValueTwo Ways to Represent Symbolic Value BDD variable a Tagged X value Xa

StrategyStrategy Start with only tagged X’s Simulate symbolic test If check is X, then select some symbol to strengthen

As BDD variable, rather than as tagged X

Resimulate Continue process until check either proved or disproved

Page 36: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 36 – SymSim ’02

XXaa

XXbb

XXaa

XX

XX

XX

aa

XXbb

aa

a?Xa?Xbb:1:1

a?1:Xa?1:Xbb

XXbb

Reclassification ExampleReclassification Example

Simple heuristics determine which variable to strengthen Must rerun entire simulation every time strengthen variable

A

B

Task: Prove Out = B

Out

Page 37: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 37 – SymSim ’02

Switch-Level Timing SimulationSwitch-Level Timing Simulation

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

Switch-Level

TimingSim.

Page 38: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 38 – SymSim ’02

Linear Switch-Level SimulationLinear Switch-Level Simulation

Linear Switch-Level SimulationLinear Switch-Level Simulation RSIM (Terman), nRSIM (Chu), IRSIM (Horowitz) Model transistor as switched, linear resistor Ternary (0, 1, X) node states Elmore (RC product) model of circuit delay

aa

1

X

0

Voltage LogicValue

Page 39: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 39 – SymSim ’02

Symbolic Timing SimulationSymbolic Timing Simulation

Symbolic Implementation of Linear Switch-Level Symbolic Implementation of Linear Switch-Level SimulationSimulation SirSim: McDonald, ICCAD ‘99 Symbolic Extensions

BDD node valuesMTBDD delay calculations

Exactly equivalent to running 2n IRSIM simulations

Is This Formal Verification?Is This Formal Verification? Model is too simplistic to justify this

Page 40: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 40 – SymSim ’02

out

a b

a

Inf 3k

R *b

20fF 30fF

C

=

Inf

a

60ps 90ps

b

Delay

From “a” rising to “out” falling

Symbolic Delay CalculationSymbolic Delay Calculation

Delays computed as (driver resistance) * (load capacitance)

Page 41: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 41 – SymSim ’02

NodeVal = (Mask & NewVal) (Mask & OldVal)

@t=30ps : out = (y &y y & x) = x & y

x

in outin

out

x yt=0

t=30ps t=60ps

small

largex y @ t=0 x y y

@t=60ps : out = (y & y y & x & y) = y

Handling Data-Dependent DelaysHandling Data-Dependent Delays

Schedule event for each possible time point Event includes mask indicating conditions under which update should

occur

Page 42: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 42 – SymSim ’02

Speedup of 1033

over exhaustive IRSIM for 64 bit adder

Sirsim < 15 min IRSIM > 1029 yrs Runtime=O(n3)

1.0E-031.0E+011.0E+051.0E+091.0E+131.0E+171.0E+211.0E+251.0E+291.0E+331.0E+37

0 10 20 30 40 50 60 70

Adder Width (bits)

Run

time

(sec

onds

)

Exhaustive IRSIM SIRSIM

Manchester AddersManchester Adders

Page 43: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 43 – SymSim ’02

Alpha Microprocessor CircuitsAlpha Microprocessor Circuits

Description #FETs #I/Os Time

56-bit way select 1500 228 28 sec.

52-bit magnitude compare 1539 106 117 sec.

64-bit barrel shifter 8192 196 20 sec.

Page 44: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 44 – SymSim ’02

Cluster SchedulingCluster Scheduling

Group events into clusters with symbolic event timesGroup events into clusters with symbolic event times “Cluster-Queue” structure maintains proper ordering Up to 8x speedup on previously published cases Exponential speedup demonstrated

100101

110111

000001

010011

CQ

SymbolicallyEncoded

Cases

Page 45: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 45 – SymSim ’02

Commercial Symbolic SimulatorsCommercial Symbolic Simulators

AcceleratedSimulation

Rigorous FormalVerification

Objective

Mo

del

Lev

el

AbstractedData

Boolean

DiscreteSwitch

LinearSwitch

CommercialTools

Page 46: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 46 – SymSim ’02

Commercial Symbolic SimulatorsCommercial Symbolic Simulators

InnologicInnologic Verilog-Based Symbolic Simulator

Handles all of VerilogNot just synthesizable subset

Extend input vector format to allow symbolic values Biggest successes to date are in memory verification

SynopsysSynopsys Part of formalVERA (a.k.a., Ketchum) assertion checker

Uses multiple strategies: automatic test generation, symbolic simulation, bounded model checking

Page 47: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 47 – SymSim ’02

Exploiting HierarchyExploiting Hierarchy

Hierarchical ModelingHierarchical Modeling Symbolically encode circuit structure

Based on hierarchy in circuit description

Simulator operates directly on encoded circuitUse symbolic variables to encode both data values & circuit

structure

Implemented by Innologic, variant by Synopsys (DAC ‘02)

Page 48: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 48 – SymSim ’02

L4

L2L2

Hierarchical Circuit RepresentationHierarchical Circuit Representation

HierarchyHierarchy Follows that in circuit representation

EncodingEncoding Introduce Boolean variables to encode

module instances

y=0 y=1 y=0 y=1

x=0 x=1

L1 DoutL1 L1 L1Din

Page 49: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 49 – SymSim ’02

Symbolically Encoding Circuit OperationSymbolically Encoding Circuit Operation

L2y=0 y=1

L1 L1In OutM

y&A y&B

ENC

1

0

y

A

B

Signal Encoder

XTR

1

0

y

A

A[y=0]

A[y=1]

Signal Extractor

L1In

Out

M

ENC

1

0

XTR

1

0

y

Page 50: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 50 – SymSim ’02

Symbolically Encoding Circuit OperationSymbolically Encoding Circuit Operation

L4

L2L2y=0 y=1 y=0 y=1

x=0 x=1

L1 DoutL1 L1 L1Din

L1ENC

1

0

XTR

1

0

y

Din

ENC

1

0

XTR

1

0

x

Dout

Page 51: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 51 – SymSim ’02

Simulating with Encoded CircuitSimulating with Encoded Circuit

y=0 y=1 y=0 y=1

x=0 x=1

L1 DoutL1 L1 L1Din

L1ENC

1

0

XTR

1

0

y

Din

ENC

1

0

XTR

1

0

x

Dout

e d c b a

d bc a

x

yd

e

Initial State

Input

0 10

1

Page 52: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 52 – SymSim ’02

Simulating with Encoded CircuitSimulating with Encoded Circuit

y=0 y=1 y=0 y=1

x=0 x=1

L1 DoutL1 L1 L1Din

L1ENC

1

0

XTR

1

0

y

Din

ENC

1

0

XTR

1

0

x

Dout

e d c b a

d bc a

x

y

e

Input

d bx

c ax

c

a

e cx

Next State e cd b

x

y

Page 53: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 53 – SymSim ’02

Simulating with Encoded CircuitSimulating with Encoded Circuit

y=0 y=1 y=0 y=1

x=0 x=1

L1 DoutL1 L1 L1Din

L1ENC

1

0

XTR

1

0

y

Din

ENC

1

0

XTR

1

0

x

Dout

e d c b

Input

StateUpdate

e cd b

x

y

Page 54: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 54 – SymSim ’02

State Encoding AdvantageState Encoding Advantage

PossibilitiesPossibilities Exponential reduction in circuit representation Exponential reduction in state representation

Example Verification (from Innologic)Example Verification (from Innologic) 256-Mbit memory Fully verified

Useful with Conventional SimulationUseful with Conventional Simulation Conventional wisdom

Cannot simulate circuit with less than 1 bit / nodeTo store state of each node

Can beat this with encodings!

Page 55: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 55 – SymSim ’02

ConclusionsConclusions

Symbolic Simulation Occupies Important NicheSymbolic Simulation Occupies Important Niche Accelerated simulation Specific forms of formal verification

Especially good at circuits with large memoriesRegular model checking perhaps better for control-intensive

circuits

Niche is ExpandingNiche is Expanding Greater generalizations as formal verifier Improved efficiency

Better use of X’sHierarchical encoding

More sophisticated circuit models

Page 56: Randal E. Bryant Carnegie Mellon University SymSim ‘02 Symbolic Simulation and its Connection to Formal Verification bryant

– 56 – SymSim ’02

Some Research ChallengesSome Research Challenges

Merging Model Checking with STEMerging Model Checking with STE Enlarge class of properties handled by STE

Include existential properties

Make use of X’s to perform data abstraction in model checking

Debugging with Symbolic SimulationDebugging with Symbolic Simulation How to communicate failure information to users Wealth of information, but need useful distillation

Coverage MetricsCoverage Metrics Is there any useful way to compare coverage by symbolic

simluation to that by conventional simulation? Conventional simulation covers miniscule fraction of cases,

but seems to find most of the bugs