Assume-Guarantee Validation for STE Properties within an SVA - - PowerPoint PPT Presentation

assume guarantee validation for ste properties within an
SMART_READER_LITE
LIVE PREVIEW

Assume-Guarantee Validation for STE Properties within an SVA - - PowerPoint PPT Presentation

Assume-Guarantee Validation for STE Properties within an SVA Environment Tom Melham Oxford University Zurab Khasidashvili & Gavirel Gavrielov Intel Israel Ltd. Validation of STE Verification Environment Assume (STE) Guarantee (SVA)


slide-1
SLIDE 1

Assume-Guarantee Validation for STE Properties within an SVA Environment

Tom Melham Oxford University Zurab Khasidashvili & Gavirel Gavrielov Intel Israel Ltd.

slide-2
SLIDE 2

2

Validation of STE Verification Environment

  • Assume (STE)
  • Guarantee (SVA)

? , P A ⇒ C  =

Big processor EXE proofs

  • improve assumptions
  • catch environment bugs
slide-3
SLIDE 3

3

f := n is 0 | n is 1 | f1 and f2 | N f | P → f

Symbolic Trajectory Evaluation

A ⇒ C stimulus response

slide-4
SLIDE 4

4

Example

v → a is 0 and v → b is 0 ⇒ out is 0 b is 0 ⇒ out is 0

X

a is 0 ⇒ out is 0

X

slide-5
SLIDE 5

5

Symbolic Simulation

n is E = E → (n is 1) and E → (n is 0) a b c

  • x

y z x ∧ y ∧ z (a is x) and (b is y) and (c is z) ⇒ o is x ∧ y ∧ z

slide-6
SLIDE 6

6

Symbolic Indexing

¬p ∧ ¬q → (a is 0) and ¬p ∧ q → (b is 0) and p ∧ ¬q → (c is 0) and p ∧ q → (a is 1) and (b is 1) and (c is 1) ⇒ ¬(p ∧ q) → (o is 0) ∧ (p ∧ q) → (o is 1)

a b c

  • a

b c X X X X X X 1 1 1

slide-7
SLIDE 7

7

Environmental Constraints

  • Conditional verification
  • Parametric representation
  • Efficient verification

fs[vs] := param(xs, P[xs]) A[fs[vs]] ⇒ C[fs[vs]] P[xs] A[xs] ⇒ C[xs]

P v1 f1 v2 f2 v3 f3

= |

slide-8
SLIDE 8

8

Translation to SVA?

  • Easy case
  • Harder…

x ∨ y a is x and b is y ⇒ …

= |

a || b

= |

R[z] P → (a is z) and Q → (b is z) ⇒ …

slide-9
SLIDE 9

9

Machine Representation - 5 Tuples

(guard, node, value, start, end) f := n is 0 | n is 1 | f1 and f2 | N f | P → f (P → a is x) and (P → N(a is x)) (P, a, x, 0, 2)

slide-10
SLIDE 10

10

STE Proof Environment – SVA Guarantee

P A ⇒ C

= |

timed global assumptions

how inputs driven ignore signals input constraints

restrictions

ignore behaviours

not trigger or checker

slide-11
SLIDE 11

11

Methodology Restrictions For Boolean Variables

  • For each x need at least one:
  • Variable dependency

is a strict partial order. (P, n, x, s, e) (Q[y], _, z, _, _) (P[x], _, y, _, _) z y x

slide-12
SLIDE 12

12

Finding a Representative Name

T(x,g) = {(g1, _, x, _, _), …, (gn, _, x, _, _)} g1 ⊃ g … gn ⊃ g s = earliest start time n = node with earliest start time f = future reference time node(x,g) = $past(n,f-s)

slide-13
SLIDE 13

13

Translating Boolean Constraints

θ = choose one node(xi,gi) for each xi. P - support = {x1, …, xn} exp(P,θ) = (g1 θ && … && gj θ) <= P θ Exp(P) = (exp(P,θ1) && … && (exp(P,θk)) Seq(P) = ##f Exp(P,θ)

slide-14
SLIDE 14

14

Implicit Equality Constraints

(g1, n1, x, s1, e1) (g2, n2, x, s2, e2) ##f Exp(g1 ∧ g2) <= $past(n1, f-e1) == $past(n2, f-e2) x x

slide-15
SLIDE 15

15

Per-Tuple Stability Constraints

(g, n, x, s, e) not(Seq(g)) or (##s+1($stable(n))[*e-s-1]) (g, n, E, s, e) not(Seq(g)) or ##f ($past(n,f-s) == Exp E)

slide-16
SLIDE 16

16

Use of Reflection Normal evaluation Reflective overloading

antecedent [ ... ( , n, , 1, 30) … ] antecedent [ ... ( , n, , 1, 30) … ]

slide-17
SLIDE 17

17

Experimental Results

36 μop groups 1,035 μops 3,161 SVA checkers

global assumptions = 3,061 constant tuples = 471 equality constraints = 84

173 cluster-level tests

unused variables = 10s wrong assumptions = 10s

1,100 core-level tests

bugs (microcode) = 2

slide-18
SLIDE 18

18

Runtimes

0.1 1 10 100 10 20 30 40 UOP group

Runtime (sec) per SVA property

slide-19
SLIDE 19

19

Thank You