0% found this document useful (0 votes)
21 views35 pages

Overview CH

The document provides an overview of formal verification, emphasizing its importance in ensuring the correctness of safety-critical systems like aircraft and nuclear plants. It discusses traditional verification methods, their limitations, and introduces formal methods as a more rigorous approach to proving system correctness through mathematical techniques. Key techniques in formal verification, including equivalence checking, model checking, and theorem proving, are highlighted along with their applications and challenges.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views35 pages

Overview CH

The document provides an overview of formal verification, emphasizing its importance in ensuring the correctness of safety-critical systems like aircraft and nuclear plants. It discusses traditional verification methods, their limitations, and introduces formal methods as a more rigorous approach to proving system correctness through mathematical techniques. Key techniques in formal verification, including equivalence checking, model checking, and theorem proving, are highlighted along with their applications and challenges.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 35

Overview of Formal

Verification

S. Ramesh
CSE Dept.
IIT Bombay
The E-world
 Computers everywhere
 wristwatches, washing machines,
microwave ovens,
 elevators, mobile telephones, printers,
 FAX machines, Telephone exchanges,
 automobiles, aircrafts
 An average home in developed
countries
 has one general purpose desktop PC
 but dozens of embedded systems.
Safety-critical Systems

 Aircrafts, Trains,
 Nuclear & Industrial Plants, Avionics
 Life Support Systems
 Quality of Computational Systems
= Quality of life
Bugs are costly
 Pentium bug

Intel Pentium chip, released in 1994 produced error in
floating point division

Cost : $475 million
 ARIANE Failure

In December 1996, the Ariane 5 rocket exploded 40
seconds after take off . A software components threw an
exception

Cost : $400 million payload.
 Therac-25 Accident :

A software failure caused wrong dosages of x-rays.

Cost: Human Loss.
Rigorous V&V Essential
What is Verification?
 Process of ensuring system behaves as
intended
 System is bug-free
 Functional Correctness
 Important Step
 Nearly 70% of development time
Classification
 Design Verification
 Design or Coding errors
 Specification bugs
 Simulation and Formal Verification
 Implementation Testing
 Translation/Synthesis Errors
 Fabrication defects
Traditional Design
Verification
 Testing & Simulation
 Reviews & Walkthroughs
 Inadequate for safety-critical systems
 Detects presence of bugs not
absence
 Late Detection of bugs
 When to stop testing
 Coverage criteria
 ~70% of time
Testing/Simulation
Run (model of the) system with test vectors
 Models at various levels
 HLL, behavioral, State Machines, RTL, Gate level
(HW)
 Functional and Delay models for timing
verification
Various Issues
 What are the test vectors ?
 Choose those that reveal the features or lack of them
 Corner cases, boundary conditions
Issues in Simulation
 How to generate vectors ?
 Based upon specification
 designer’s understanding
 Random vectors
 How to evaluate simulation results ?
 Use Golden Model
 Use specifications
 When to stop simulating ?
 Statement, condition and state coverage of
the model
 Feature coverage over specification
 Time to market
Simulation
 Widely used validation technique
 Many powerful commercial simulators
 Many speed-up techniques – FPGA based
hardware emulators
 Many simulations aids – assertion checkers
and event monitors
 Many automatic tools for test bench
creation
 Specman (Verisity), Vera (synopsys)
 automatic generation of tests, monitors,
functional models, scoreboards
 Coverage analysis tools
Problems in simulation
 Simulation is slow, requires billions of
vectors for large designs
 Exhaustive simulation infeasible
 Coverage of design functionality
unknown
 Correctness of golden model suspect
 Bugs lurk deep in designs that get
revealed after complex input
sequences
Formal Methods
 More rigorous approach
 Founded on Mathematical methods
 Proves correctness of Systems
 Increased confidence
 Early Detection of bugs
 Design Verification
 Complementary to traditional
techniques
Formal Verification
 Formally check a formal model of the system
against a formal specification
 Formal : Mathematical, Precise, unambiguous
 Static analysis
 No test vector
 Exhaustive Verification
 Proves absence of bugs
 Complex and subtle bugs caught
 Early Detection
Three-step process

 Three steps are


 Formal Specification
 Formal Models
 Verification

 Formal specification

Precise statement of properties
 System requirements and environmental
constraints
 Logic - PL, FOL, temporal logic
 Automata, labeled transition systems
Other steps
 Models

Flexible to model general to specific
designs
 Non-determinism, concurrency, fairness,

 HLL, Transition systems, automata

 Verification

Checking that model satisfies
specification
 Static and exhaustive checking

 Automatic or semi-automatic
An Example (Academic)
function gcd(x,y)
{
\*assume: x > 0 & y >0 & x=a & y=b
*\
while (x<>y)
{ if x>y then x=x-y else y=y-x
}
\*assert: gcd(x,y) = gcd(a,b) */
}
GCD Example (contd.)
 Specification
 Assume and Assert Conditions
 environment constraints and requirements
 Model
 HLL code with precise semantics
 Verification
 Symbolic Execution
 Theorem Proving
An Industrial Example
struct RCD3_data { double X, Y; };

void get_inputsXY(struct RCD3_data *final_data)


{ ret1 = read_from_reg( 1, &InputX );
/*postfunc ( InputX >= 0 /\ InputX <= 4095 ) end*/
change_to_v(InputX, input_src, &tempX );
/*assert !(tempX < 0 \/ tempX > 5) end*/
final_data->X= tempX;
convert_to_d(1, tempX, final_data);
/*post (#X final_data >= -180) /\ (#X final_data <= 180)

end*/
}
An abstract Design
example

 3- floor elevator controller,


 Si - in floor i
 ri - request from floor I
 U,d – up or down movement
Lift Controller (contd.)
 Specification
 When the lift is in motion door is closed
 Every call is eventually attended
 The lift is busy attending one of the
requests
 Safety and Liveness Properties
 Verification
 State space exploration
 Model Checking
 Automatic
Third Example

Specification:
 sum := (x  y)  cin
 cout := (x  y)  ((x  y)  cin)
Full Adder (Contd.)
Model
 Boolean expression corr.
implementation of full adder
 Verification
 Comparision of boolean expressions
 Equivalence Checking
 Theorem Proving, in general
Some Observations
 Precise statement of requirements
and constraints
 Nothing in the head, one has to
commit
 No ambiguity, no escape
 Precise description of Designs
 Algorithmic or semi-automatic and
rigorous techniques for verification
Observation (contd.)
 Verification fails
 Specification can be wrong or
incomplete
 Design could be too abstract
 Design is buggy and hence does not
satisfy the specification
 Verification succeeds
 if specification is trivial
 if specification derived from code
 if design meets specification
Formal Specification
 Thorough review of Specification
essential
 Specification independent of
design
 Additional Step
 Better done before the design
starts
Further Observation
 FV complicates the problem
 Creates more work
 No, not at all
 Traditional approaches ignores
 FV unearths the inherent problems
 Definitely more work
 High quality does not come free!
Formal Verification
Techniques
 Three major techniques
 Equivalence checking (HW)
 Model checking(HW & SW)
 Theorem proving(HW & SW)
Equivalence Checking
 Checking equivalence of two similar circuits
 Useful for validating optimizations, scan
chain insertions
 Comparison fo two boolean expressions – use
of BDDs
 Highly automatic and efficient
 Most used formal Verification technique
 Commercial tools :
 Design VERIFYer (Chrysalis Inc.)
 Formality (Synopsis, million gates in less than an
hour)
 V-Formal
Model Checking
 Another promising automatic technique
 Checking design models against specification
 Specifications temporal properties and
environment constraints; use of temporal logic
or automata
 Design models are automata or HDl sub sets
 Checking is automatic and bug traces
 Very effective for control-intensive designs and
Protocols
 Many Commercial and academic tools:
 Spin (Bell Labs.), Formal-Check (Cadence), VIS
(UCB), SMV (CMU, Cadence)
 In-house tools: Rule Base (IBM), Intel, SUN,
Theorem Proving
 Most Powerful technique
 Specification and design are logical
formulae
 Checking involves proving a theorem
 Semi-automatic
 High degree of human expertise
required
 Mainly confined to academic
 Number of public domain tools
 Nqthm, STeP, PVS, HOL
Formal verification
(experiences)
• Very effective for small control-intensive
designs-blocks of hundreds of latches or
state bits
• Many subtle bugs have been caught in
designs cleared by simulation or testing
• Strong theoretical foundation
• High degree of confidence
• Holds a lot of promise
• Requires a lot more effort and expertise
• Large designs need abstraction
• Many efforts are underway to improve
Systems verified
 Various microprocessors (instruction level
verification):
 DLX pipelined architectures, AAMP5 (avionics
applications), FM9001 (32 bit processor), PowerPC
 Floating point units:
 SRT division (Pentium), recent Intel ex-fpu, ADK
IEEE multiplier, AMD division
 Multiprocessor coherence protocols
 SGI, sun S3.Mp architectures, Gigamax, futurebus+
 Memory subsystems of PowerPC
 Fairisle ATM switch core
Challenges of formal
verification
 Complexity of verification
 Automatic for finite state systems
(HW, protocols)
 Semi-automatic in the general case of
infinite state systems (software)
 State explosion problem
 Symbolic model checking
 Compositional reasoning
 Localization Reduction (FormalCheck)
 Partial Order Reduction (Spin)
References
 E.M. Clarke, O. Grumberg and D. Peled, Model
Checking, MIT Press, 1999.
 C. Kern and M.R. Greenstreet, Formal
Verification in Hardware Design: A Survey,
ACM TODAES, 1999.
 R. Kurshan, Computer - Aided Verification of
Co-ordinating Processes, Princeton Univ.Press,
1994
 Z. Manna and A. Pnueli, Temporal
Specification and Verification of Reactive
Systems Vol. I and II, Springer 1995.
 K. L. McMillan, Symbolic Model Checking,
Kluwer 1993.
Important web-sites:

 http://www.comlab.ox.ac.uk/archive/formal-
methods.html
 http://www.csl.sri.com
 http://dimacs.rutgers.edu/workshops/syla
tutorials/program.html
 http://www-cad.eecs.Berkeley.edu/ vis
 http://godel.ece.utexas.edu/texas97-
benchmarks
 http://www.cfdvs.iitb.ac.in

You might also like