15
ATLAS Automatic Term-Level Abstraction Bryan Brady, Sanjit Seshia OSQ 2010 05/13/2010

ATLAS Automatic Term-Level Abstraction

  • Upload
    lexine

  • View
    28

  • Download
    2

Embed Size (px)

DESCRIPTION

ATLAS Automatic Term-Level Abstraction. Bryan Brady, Sanjit Seshia OSQ 2010 05/13/2010. HDLs are PLs. Verilog is a programming language We want to prove certain properties about hardware (software) designs Are two versions of a circuit (program) equivalent? - PowerPoint PPT Presentation

Citation preview

Page 1: ATLAS Automatic Term-Level Abstraction

ATLASAutomatic Term-Level Abstraction

Bryan Brady, Sanjit SeshiaOSQ 201005/13/2010

Page 2: ATLAS Automatic Term-Level Abstraction

HDLs are PLs

• Verilog is a programming language• We want to prove certain properties about

hardware (software) designs– Are two versions of a circuit (program) equivalent?– Does my circuit (program) satisfy property P?

Page 3: ATLAS Automatic Term-Level Abstraction

Equivalence Checking

Circuit 1

i0 i1 in

=

Circuit 2

i0 i1 in

?

Page 4: ATLAS Automatic Term-Level Abstraction

Equivalence Checking (Can be hard!)

i0 i1 in

=

i0 i1 in

?

* *

Page 5: ATLAS Automatic Term-Level Abstraction

Abstraction

i0 i1 in

=

i0 i1 in

?

* *f f

Page 6: ATLAS Automatic Term-Level Abstraction

Abstraction Challenges

• Hard to do manually even for small circuits/programs

• Requires knowledge of circuit/program design• Can result in spurious counter-examples• How do we deal with this?

Page 7: ATLAS Automatic Term-Level Abstraction

Automatic Abstraction

• Combination of random simulation and static analysis

• Identify candidate functional blocks for abstraction (modules/functions) using random simulation

• For the functional blocks aren’t pruned in the random simulation phase, use static analysis to compute conditions under which it is precise to abstract

Page 8: ATLAS Automatic Term-Level Abstraction

Computing Safe Abstractions

Page 9: ATLAS Automatic Term-Level Abstraction

Promising Results

SMT Runtime

Benchmark Abs NoAbs

PIPE 1.86s 171.09s

CALC 23.86s 133.72s

Y86-NT 1350.95s 1736.66s

Y86-STALL 221.89s 1302.27s

Y86-STD 51.95s 1239.77s

Page 10: ATLAS Automatic Term-Level Abstraction

Question

• Are there any software examples that might benefit from this technique?

Page 11: ATLAS Automatic Term-Level Abstraction

Example

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

=

=

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

V2=T

16

20

16 16

20

16 16outout

out_ok

pc_ok

4 4

16

V3=T

V5=F

V4=F

V1=F

V7=T

V8=T

V10=T

V9=T

V6=F

V11=T

V12=F

V13=F

V14=F

V15=T

V16=F

1) Initial State

Interpretation Condition

Computation

Page 12: ATLAS Automatic Term-Level Abstraction

Example

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

=

=

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

V2=T

16

20

16 16

20

16 16outout

out_ok

pc_ok

4 4

16

V3=T

V5=F

V4=F

V1=F

V7=T

V8=T

V10=T

V9=T

V6=F

V11=T

V12=F

V13=F

V14=F

V15=T

V16=F

1) Initial State2) Update +4 Nodes

Interpretation Condition

Computation

V13=T

V5=T

Page 13: ATLAS Automatic Term-Level Abstraction

Example

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

=

=

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

V2=T

16

20

16 16

20

16 16outout

out_ok

pc_ok

4 4

16

V3=T

V5=T

V4=F

V1=F

V7=T

V8=T

V10=T

V9=T

V6=F

V11=T

V12=F

V13=T

V14=F

V15=T

V16=F

1) Initial State2) Update +4 Nodes3) Update PC Latch

Nodes

Interpretation Condition

Computation

V4=T

V12=T

Page 14: ATLAS Automatic Term-Level Abstraction

Example

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

=

=

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

V2=T

16

20

16 16

20

16 16outout

out_ok

pc_ok

4 4

16

V3=T

V5=T

V4=T

V1=F

V7=T

V8=T

V10=T

V9=T

V6=F

V11=T

V12=T

V13=T

V14=F

V15=T

V16=F

1) Initial State2) Update +4 Nodes3) Update PC Latch

Nodes4) Update ITE Nodes

Interpretation Condition

Computation

V1=JMP==instr[19:16]

Page 15: ATLAS Automatic Term-Level Abstraction

Example

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

=

=

JMP

IMem

=

PC+4

ALU

[19:16]

[15:0]

01

V2=T

16

20

16 16

20

16 16outout

out_ok

pc_ok

4 4

16

V3=T

V5=T

V4=T

V7=T

V8=T

V10=T

V9=T

V6=F

V11=T

V12=T

V13=T

V14=F

V15=T

V16=F

1) Initial State2) Update +4 Nodes3) Update PC Latch

Nodes4) Update ITE Nodes5) Update out_ok Node

Interpretation Condition

Computation

V1=JMP==instr[19:16]

V16=JMP==instr[19:16]