an introduction to symbolic trajectory evaluation
play

An Introduction to Symbolic Trajectory Evaluation Koen Lindstrm - PowerPoint PPT Presentation

An Introduction to Symbolic Trajectory Evaluation Koen Lindstrm Claessen Chalmers University / Jasper AB Gothenburg, Sweden An Example A 7-input AND gate? in0 & in1 OR in2 & in3 out & in4 OR in5 & in6


  1. An Introduction to Symbolic Trajectory Evaluation Koen Lindström Claessen Chalmers University / Jasper AB Gothenburg, Sweden

  2. An Example A 7-input AND gate? in0 & in1 OR in2 & in3 out & in4 OR in5 & in6

  3. Verification by Simulation “Antecedent” (in0 is 0) and driving (in1 is 0) and (in2 is 1) and (in3 is 1) and (in4 is 0) and (in5 is 1) and (in6 is 0)  (out is 0) Simulation “Consequent” specification checking

  4. Simulation … 2 7 = 128 simulations 0 & 1 0 0 OR 1 & OK 0 0 ! 1 & 0 ? 1 0 0 OR 0 & 1 0

  5. Smarter Simulation … Good for 2 6 = 64 simulations! 0 & 1 0 0 OR 1 & 0 ! OK 1 & 0 ? 0 OR 0 & 0

  6. Smarter Simulation (2)… Good for 2 6 = 64 simulations 0 & 0 OR 1 & 0 ! OK 1 & 0 ? 0 1 0 OR 0 & 0

  7. Smarter Simulation? Got stuck 0 & 0 OR 1 & 1 & 0 ? 0 OR 0 & 0

  8. Three-Valued Simulation: 0,1,X Good for 2 6 = 64 simulations X X & X X OR X X & 0 ! OK X & 0 ? 0 1 0 OR X & X X X = “unknown”

  9. abstraction : Simulating with 0,1,X X = {0,1} x x x & y x OR y x y x y 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 X X 1 0 0 1 0 1 1 1 1 1 1 1 X 0 0 X 0 X enough information 0 X 0 0 X X X 1 X X 1 1 1 X X 1 X 1 not enough information X X X X X X

  10. Three-Valued Specification not mentioned in antecedent means  (in0 is 0)  (out is 0) driven with “X”  (in1 is 0)  (out is 0)  (in2 is 0)  (out is 0)  (in3 is 0)  (out is 0)  (in4 is 0)  (out is 0) 8 simulations  (in5 is 0)  (out is 0) in total  (in6 is 0)  (out is 0)  (in0 is 1) and (in1 is 1) and … and (in5 is 1) and (in6 is 1)  (out is 0)

  11. Symbolic Simulation  Boolean expression datatype  Variables; a, b, c  Logical operations; not, and, or  Compositional  Canonical representation (Reduced Ordered) Binary Decision Diagrams (BDDs)

  12. Compositional? F & G F: G: b a & c b 0 1 0 1

  13. Canonical? a & ~b ~(~a v b) a a = b b 0 1 0 1

  14. Symbolic Simulation … only 1 simulation! many variables a ~(a&b) & give possible b BDD blow-up a&b&c&d OR c & ~(c&d) a&b&c&d&e d & &f&g ! ~e OK e OR e&f&g f & ~(f&g) g

  15. Symbolic Specification (in0 is a) and symbolic (in1 is b) and variable (in2 is c) and (in3 is d) and expected (in4 is e) and symbolic (in5 is f) and value (in6 is g)  (out is (a&b&c&d&e&f&g)) circuit node

  16. Symbolic Summary Trajectory Evaluation symbolic (STE) three-valued simulation three-valued symbolic simulation simulation standard simulation- based verification

  17. Idea  128 ordinary simulations  require 7 symbolic variables  8 three-valued simulations  require only 3 symbolic variables! “symbolic  call these p,q,r indexing”  When p=q=r=1, all inputs are 1  Otherwise, <pqr> indicates which input is 0  Expected value of out? out is (p&q&r)

  18.  is a new STE Specification operator ((~p&~q&~r)  (in0 is 0)) and Only 3 symbolic ((~p&~q& r)  (in1 is 0)) and variables; less ((~p& q&~r)  (in2 is 0)) and risk of blow-up! ((~p& q& r)  (in3 is 0)) and (( p&~q&~r)  (in4 is 0)) and (( p&~q& r)  (in5 is 0)) and (( p& q&~r)  (in6 is 0)) and (( p& q& r)  ((in0 is 1) and (in1 is 1) and … and (in5 is 1) and (in6 is 1)))  (out is (p&q&r))

  19. Conditional Driving P  A Logically: Implication Only use A to drive simulation when P is true Otherwise, nodes in A are unknown: X

  20. Three-Valued Symbolic Expressions  Simulator needs to deal with  boolean values 0,1  unknown value X  symbolic variables a, b, c  expressions with & , OR , , over the above  Solutions  new datastructure  dual-rail encoding

  21. Each three-valued Dual-Rail Encoding entity is represented by a pair of two- x0 says x1 says valued entities when x is 0 when x is 1 (x0,x1) & (y0,y1) x (x0,x1) = 0 (1,0) (x0 OR y0, x1 & y1) 1 (0,1) (x0,x1) OR (y0,y1) X (0,0) = (x0 & y0, x1 OR y1) X means (x0,x1) neither 0 nor 1 = (x1,x0)

  22. Symbolic Three-Valued (~p&~q&~r, only 1 p&q&r) Simulation … simulation, 3 variables & OR & & OR & (~(p&q&r), (~p& q& r, p&q&r) p&q&r)

  23. Symbolic Trajectory Evaluation  Invented in 1995 by Seger and Bryant  Used industrially  Mainly Intel; heavy use  Forte  ReFLect/IDV  Memory-intensive circuits  Hard for other verification methods

  24. The Rest of this Lecture  Some pitfalls  More interesting example: Memory  Semantics  Current directions

  25. What Does X Mean? no “second thoughts” … X 0 1 1 …

  26. Pitfall 1 multiplexer in0 a a&X & out OR in1 a a&X & a&X manual abstraction sel X information loss (sel is b) and (in0 is a) and (in1 is a)  (out is a)

  27. only forwards information Pitfall 2 propagation a in0 X 1 = a&b & out 1 in1 X b (in0 is a) and (in1 is b) and (out is 1)  (in0 is 1) and (in1 is 1) we need a semantics! predictability

  28. Example: Memory rd out0 loc0 wr out1 loc1 out addr out2 loc2 in …

  29. Memory  Address width k  2^k locations  Data width n  n*(2^k) state-holding elements k=16, n=16: state-based 1048576 model elements checkers?

  30. A Specification (k=2,n=1) first we write d to address a0a1 (wr is 1) and (in is d) and (addr0 is a0) and (addr1 is a1) and then we read from N ((rd is 1) and address a0a1 (addr0 is a0) and (addr1 is a1))  next point next point N (out is d) in time in time symbolic variables: we expect d a0,a1: address, to come out d: data

  31. Simulation (initially) rd out0 X wr out1 X out addr out2 X in …

  32. Simulation (time 1) if a0a1 = 00 then d else X X e0 X 1 e1 X a0a1 e2 X d … if a0a1 = 10 then d else X

  33. if a0a1 = 00 Simulation (time 2) if a0a1 = 00 then ( if a0a1 = then e0 else 0 00 then d else X) else 0 1 e0 X X d if a0a1 = 00 then d else 0 e1 X OK a0a1 e2 X X … if a0a1 = 10 if a0a1 = 10 then e2 else 0 then d else 0

  34. Memory with STE  Address width k, data width n  2^k locations  n*(2^k) state-holding elements  k+n symbolic variables k=16, n=16: 32 symbolic variables

  35. STE Theory 0/1 “clash” T 0 1 four-valued expressions! information ordering X information lattice

  36. 4-Valued Gates  T & y = T y & T = T  T OR y = T y OR T = T T = T   Gates are monotonic w.r.t. information ordering no “second thoughts”

  37. Circuit Model example: {in0,in1,out}  Set of nodes N  state-holding: n vs n’  Set of states s : S = N  {X,0,1,T}  Circuits are modelled as closure functions F : S  S propagates given can be easily constructed values to other nodes from the netlist

  38. Closure Function F : S  S  Monotonic  s1 <= s2 implies F(s1) <= F(s2)  Idempotent no second  F(F(s)) = F(s) thoughts  Extensive completely simulated  s <= F(s) do not invent own things

  39. Sequences of States  Sequences seq : Seq = Time  S  Closure function over time F* : Seq  Seq  Connecting all state-holding registers  Monotonic  Idempotent  Extensive

  40. Trajectory Evaluation Logic (TEL) n is P shorthand for A,B,C ::= n is 0 (P  n is 1) and | n is 1 (~P  n is 0) | P  A | A1 and A2 | N A

  41. given boolean evaluation phi for Semantics of TEL symbolic variables given a sequence of states seq phi, seq |= n is 0 iff. seq(n)(0) >= 0 phi, seq |= n is 1 iff . seq(n)(0) >= 1 phi, seq |= P  A iff . phi |= P implies phi,seq |= A phi, seq |= A1 and A2 iff . phi,seq|=A1 and phi,seq|=A2 iff . phi, seq 1 |= A phi, seq |= N A time shift

  42. sequence following from Trajectories simulation  A sequence seq is a trajectory:  F*(seq) = seq  Alternatively:  Exists seq’ . F*(seq’) = seq

  43. Final Semantics F |= A  C restriction to three- iff. valuedness for all phi, and for all trajectories traj of F: phi,traj |= A implies phi,traj |= C

  44. Fundamental Theorem of STE all trajectories traj of F for which phi,traj |= A are characterized by the weakest trajectory traj for which phi,traj |= A enough to just calculate the weakest trajectory

  45. Abstraction Refinement  Failed STE assertion hard to know what  “real” counter example kind  something is really wrong  “spurious” counter example  too many X’s in the simulation  After spurious counter example  Specification needs to be refined

  46. Pitfall 1 multiplexer in0 a X & out OR in1 a X & X sel X information loss (in0 is a) and (in1 is a)  (out is a)

  47. “Weakest Strengthenings” (in0 is a) and (in1 is a)  (out is a) a=1 (sel is 1) and (in0 is 1) in0=1 and (in1 is 1)  (out is 1) in1=1 sel=1 out=1 weakest satisfying strengthening

Recommend


More recommend