Specifying circuit properties in PSL / Sugar

63
Specifying circuit properties in PSL / Sugar

description

Specifying circuit properties in PSL / Sugar. But first some background…. Formal methods. Mathematical and logical methods used in system development Aim to increase confidence in riktighet of system Apply to both hardware and software. Formal methods. Complement other analysis methods - PowerPoint PPT Presentation

Transcript of Specifying circuit properties in PSL / Sugar

Page 1: Specifying circuit properties in PSL / Sugar

Specifying circuit properties in PSL / Sugar

Page 2: Specifying circuit properties in PSL / Sugar

But first some background…

Page 3: Specifying circuit properties in PSL / Sugar

Formal methods

Mathematical and logical methods used in system development

Aim to increase confidence in riktighet of system

Apply to both hardware and software

Page 4: Specifying circuit properties in PSL / Sugar

Formal methods

Complement other analysis methods

Are good at finding bugs

Reduce development (and test) time (Verification time is often 70% of total time in hardware design projects)

Page 5: Specifying circuit properties in PSL / Sugar

Successful formal methods

Integrated in the design flow

Avoid new demands on the user

Work at large scale

Save time or money in getting a good quality product out

Page 6: Specifying circuit properties in PSL / Sugar

Some fundamental facts

Low level of abstraction, Finite state systems

=> automatic proofs possible

High level of abstraction, Fancy data types, general programs

=> automatic proofs IMPOSSIBLE

Page 7: Specifying circuit properties in PSL / Sugar

Two main approaches• Squeeze the problem down into one that

can be handled automatically– industrial success of model checkers– automatic proof-based methods very hot

• Use powerful interactive theorem provers and highly trained staff– for example Harrison’s work at Intel on

floating point algorithms (http://www.cl.cam.ac.uk/users/jrh/)

Page 8: Specifying circuit properties in PSL / Sugar

Model Checking

MC

G(p -> F q)yes

nop

q

p

q

property

finite-state model

algorithm

counterexample

(Ken McMillan)

Page 9: Specifying circuit properties in PSL / Sugar

Again two main approaches

• Linear Temporal Logic (LTL)– must properties, safety and liveness– Pnueli, 1977

• Computation Tree Logic (CTL)– branching time, may properties, safety and

liveness– Clarke and Emerson, Queille and Sifakis, 1981

Linear time conceptually simplier (words vs trees)

Branching time computationally more efficientWe will return to this in a later lecture

Page 10: Specifying circuit properties in PSL / Sugar

But

temporal logics hard to read and write!

Page 11: Specifying circuit properties in PSL / Sugar

Computation Tree Logic

A sequence beginning with the assertion of signal strt, and containing two not necessarily consecutive assertions of signal get, during which signal kill is not asserted, must be followed by a sequence containing two assertions of signal put before signal end can be asserted

AG~(strt & EX E[~get & ~kill U get & ~kill & EX E[~get & ~kill U get & ~kill & E[~put U end] | E[~put & ~end U (put & ~end & EX E[~put U end])]]])

Page 12: Specifying circuit properties in PSL / Sugar

Break for some history

Page 13: Specifying circuit properties in PSL / Sugar

Nov. ’94 Intel FPU bug

• 824633702441.0 times (1/824633702441.0) = 0.99999999274709702

• Fault in look-up table

• COST $475.000.000

Page 14: Specifying circuit properties in PSL / Sugar

$15 per transistor!!

• ”We are heading for a brick wall”

• ”We can’t fill the fabs”

• ”A first requirement is a formal semantics”

Page 15: Specifying circuit properties in PSL / Sugar

We thought

Cost of design is soaring

Price of getting it wrong is high

Formal verification (and particularly model checking) must be the answer!

Page 16: Specifying circuit properties in PSL / Sugar

Some great successes

Intel floating point verification (see video from MEMOCODE 2004 (google

for it))

Bug finding at Motorola, Digital etc.

Elegant verifications at AMD... Successes at Siemens

Page 17: Specifying circuit properties in PSL / Sugar

Some great successes

And equivalence checking is now standard and widely used

But no breakthrough for model checking to a larger market (see Deepchip (google again))

Page 18: Specifying circuit properties in PSL / Sugar

Why?

Again see MEMOCODE videos

Too little concentration on ease of use

Developers don’t want to do formal verification (”a vague and confusing form of testing”)

Disruption to the design flow

Page 19: Specifying circuit properties in PSL / Sugar

Why?

Limits in capacity of commercial tools

Lack of methodology (e.g. about coverage)

Not enough perceived payoff

Page 20: Specifying circuit properties in PSL / Sugar

Response (standard)

Industry effort to develop standardised property specification languages (e.g. PSL, SVA)

Try to solve the above problems while remaining compatible with standard design flow (e.g. Jasper)

Page 21: Specifying circuit properties in PSL / Sugar

Sugar (IBM, Haifa)

Grew out of CTL

Added lots of syntactic sugar

Engineer friendly, used in many projects

Used in the industrial strength MC RuleBase

Page 22: Specifying circuit properties in PSL / Sugar

Assertion Based Verification (ABV) can be done in two ways

During simulation – (dynamic, at runtime, called semi-formal

verification, checks only those runs)

As a static check – (formal verification, covers all possible runs,

more comprehensive, harder to do, restricted to a subset of the property language)

Page 23: Specifying circuit properties in PSL / Sugar

Properties

always (p)

Asserts that p (a boolean expression made from signal names, constants and operators) is true on every cycle of the simulation

always (! (gr1 & gr2))

Page 24: Specifying circuit properties in PSL / Sugar

Properties

always (a -> b) If a is true, then b is true a implies b a -> b !a | b

always (a -> prev(b))If a is true, then b was true at the

previous cycle

Page 25: Specifying circuit properties in PSL / Sugar

Safety Properties

always (p) ”Nothing bad will ever happen”Most common type of property

checked in practiceEasy to check (more later)Disproved by a finite run of the

system

Page 26: Specifying circuit properties in PSL / Sugar

Observer: a second approach

Observer written in same language as circuit

Safety properties only

Used in verification of control programs (and in Lava later)

FProp

ok

Page 27: Specifying circuit properties in PSL / Sugar

Back to PSL

always (p) Talks about one cycle at a time

Sequential Extended Regular Expressions (SEREs) allow us to talk about spans of time

A SERE describes a set of sequences of states

It is a building block for a property

http://www.accellera.org/PSL-v1.1.pdf

Page 28: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

All sequences of states, or traces, in which req is high on the first cycle, busy on the second, and grnt on the third.

(source Sugar 2.0 presentation from IBM’s Dana Fisman and Cindy Eisner, with thanks)

Page 29: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

req

busy

grnt

Page 30: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

req

busy

grnt

is in the set of traces

Page 31: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

req

busy

grnt

This too

Page 32: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

req

busy

grnt

and this

Page 33: Specifying circuit properties in PSL / Sugar

SERE examples

{req, busy, grnt}

req

busy

grnt

but not this

Why?

Page 34: Specifying circuit properties in PSL / Sugar

SERE examples

How can we specify ONLY those traces that start like this?

req busy

grnt

Page 35: Specifying circuit properties in PSL / Sugar

SERE examples

req

busy

grnt

{req & !busy & !grnt, !req & busy & !grnt, !req & !busy & grnt}

Page 36: Specifying circuit properties in PSL / Sugar

SERE examples

How do we say that the {req,busy,grnt} sequence can start anywhere?

req busy

grnt

Page 37: Specifying circuit properties in PSL / Sugar

SERE examples

{[*], req, busy, grnt}

req

busy

grnt

[*] means skipzero or more cycles

Page 38: Specifying circuit properties in PSL / Sugar

SERE examples

{[*],req, busy, grnt}

req

busy

grnt

so our original traceis still in the setdescribed

Page 39: Specifying circuit properties in PSL / Sugar

SERE examples

{true, req, busy, grnt}

req

busy

grnt

says that the req, busy, grntsequence starts exactly in the second cycle. It constrains only cycles 2,3,4

Page 40: Specifying circuit properties in PSL / Sugar

{true[4], req, busy, grnt}rbg sequence must start at cycle 5 {true[+], req, busy, grnt} true[+] =

[+]one or more trues

true[*] = [*]

Page 41: Specifying circuit properties in PSL / Sugar

{[*], req, busy[3..5], grnt}at least 3 and at most 5 busys

{[*], req, {b1,b2}[*], grnt}

{[*], req, {b1,b2,b3}[7], grnt}subsequences can also be repeated

Page 42: Specifying circuit properties in PSL / Sugar

&&

Simultaneous subsequencesSame length, start and end together

{start, a[*], end} && {!abort[*]}

Page 43: Specifying circuit properties in PSL / Sugar

||

One of the subsequences should be matched

Don’t need to be the same length

{request, {rd, !cncl_r, !dne[*]} || {wr,!cncl_w,!

dne[*]}, dne}

Page 44: Specifying circuit properties in PSL / Sugar

Properties at last!

SEREs are not properties in themselves

{SERE1} => {SERE2} is a property

If a sequence matches SERE1, then itscontinuation should match SERE2

Page 45: Specifying circuit properties in PSL / Sugar

if then

{true[*], req, ack} => {start, busy[*], end}

Page 46: Specifying circuit properties in PSL / Sugar

Not just the first req, ack{true[*], req, ack} => {start, busy[*],

end}

if then

if then

Page 47: Specifying circuit properties in PSL / Sugar

Overlap also possible!{true[*], req, ack} => {start, busy[*],

end}

if then

ifthen

Page 48: Specifying circuit properties in PSL / Sugar

if then

{true[*], req, ack} => {start, data[*], end}

Page 49: Specifying circuit properties in PSL / Sugar

{true[*], req, ack} => {start, data[=8], end}

if then

1 2 3 4 5 6 7 8

Can check for data in non-consecutive cycles

Page 50: Specifying circuit properties in PSL / Sugar

A form of implication

{SERE1} => {SERE2}If a sequence matches SERE1, then itscontinuation should match SERE2

But SERE2 doesn’t have to ”reach its end”

Page 51: Specifying circuit properties in PSL / Sugar

Safety properties

{SERE1} => {SERE2}If a sequence matches SERE1, then it

should not be followed by a continuation that does not match SERE2

Checkable by simulation

For model checking, there is a stronger version of the => construct, that demands that the second sequence complete

{SERE1} => {SERE2}!

Page 52: Specifying circuit properties in PSL / Sugar

Another form of implication

{SERE1} -> {SERE2}If a sequence matches SERE1, then SERE2

should be matched, starting from the last element of the sequence matching SERE1

So there is one cycle of overlap in the middle

This also has a strong version (ending !)

Page 53: Specifying circuit properties in PSL / Sugar

Example

{[*], start, busy[*], end} -> {success, done}

If signal start is asserted, signal end is asserted at the next cycle or later, and in the meantime signal busy holds, then success is asserted at the same time as end is, and in the next cycle done is asserted

Page 54: Specifying circuit properties in PSL / Sugar

Example

{[*], {start, c[*], end}&&{!abort[*]}} -> {success}

If there is no abort during {start,c[*],end}, success will be asserted with end

Note && cannot appear in the right hand sequence

Page 55: Specifying circuit properties in PSL / Sugar

{SERE1} => {SERE2} = {SERE1} -> {true, SERE2}

Both are formulas of the linear fragment

Sugar has a small core and the rest is syntactic sugar, for example

always{r} = {true[*]} -> {r}b[=i] = {!b[*], b}[i] , !b[*]

Page 56: Specifying circuit properties in PSL / Sugar

Sugar Formulas

1. Every boolean expression is a Sugar formula

2. Every Sugar formula of the linear fragment is a Sugar formula

Page 57: Specifying circuit properties in PSL / Sugar

Sugar Formulas

3. If f, f1 and f2 are Sugar formulas and r is a SERE, then the following are Sugar formulas:

i. !fii. f1 & f2iii. EX fiv. E [f1 U f2]v. EG fvi. {r}(f)

Page 58: Specifying circuit properties in PSL / Sugar

Sugar Formulas

{r}(f) (which was 3(vi))

Holds for a state s if, for all finite sequences starting from s on which r holds, formula f holds on the final state of the sequence r

Page 59: Specifying circuit properties in PSL / Sugar

Sugar Formulas

If we delete rule 2 (the linear fragment) and rule 3(vi), then we have CTL!

Next lectures build up to what CTL is and how to model check it

Page 60: Specifying circuit properties in PSL / Sugar

Sugar

Regular expressions (plus some operators)+Linear temporal logic (LTL)+Computation tree logic (CTL)+Lots of syntactic sugar

Page 61: Specifying circuit properties in PSL / Sugar

Example revisited

A sequence beginning with the assertion of signal strt, and containing two not necessarily consecutive assertions of signal get, during which signal kill is not asserted, must be followed by a sequence containing two assertions of signal put before signal end can be asserted

AG~(strt & EX E[~get & ~kill U get & ~kill & EX E[~get & ~kill U get & ~kill & E[~put U end] | E[~put & ~end U (put & ~end & EX E[~put U end])]]])

Page 62: Specifying circuit properties in PSL / Sugar

In PSL/Sugar (with 8 for 2)

A sequence beginning with the assertion of signal strt, and containing eight not necessarily consecutive assertions of signal get, during which signal kill is not asserted, must be followed by a sequence containing eight assertions of signal put before signal end can be asserted

AG({strt, {get[=8]}&&{kill[=0]}} =>

{{put[=8]}&&{end[=0]}})

Page 63: Specifying circuit properties in PSL / Sugar

PSL

Seems to be reasonably simple, elegant and concise!

Jasper AB (formerly called Safelogic), the Göteborg based makers of the Jasper Gold Lite 4.0 Early Access tool, are involved in simplifying the semantics