vlogsl: a strategy language for simulation-based

50
vlogsl: A Strategy Language for Simulation-based Verification of Hardware Michael Katelman and Jos´ e Meseguer University of Illinois at Urbana-Champaign Haifa Verification Conference – October 5, 2010 1 / 26

Upload: others

Post on 12-Feb-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

vlogsl: A Strategy Language forSimulation-based Verification of Hardware

Michael Katelman and Jose Meseguer

University of Illinois at Urbana-Champaign

Haifa Verification Conference – October 5, 2010

1 / 26

“Implied needs are in: (1) verification, which is a bottleneckthat has now reached crisis proportions . . . ”

“. . . due to the growing complexity of silicon designs, functionalverification is still an unresolved challenge, defeating the enor-mous effort put forth by armies of verification engineers andacademic research efforts.”

“Multiple sources report that in current development projectsverification engineers outnumber designers, with this ratioreaching two to one for the most complex designs.”

[ITRS 09]

2 / 26

language-level approach to mitigating the verification burden:help verification engineers be more productive by providing abetter programming language to work in

strategy paradigm

explore the space of simulations in complex ways

vlogsl

an EDSL in Haskell supporting the strategy paradigm

3 / 26

Outline:

1 strategy paradigm, motivation and definition

2 vlogsl architecture

3 maze examples

4 I2C case study

5 concluding remarks

4 / 26

5 / 26

5 / 26

5 / 26

6 / 26

6 / 26

6 / 26

6 / 26

7 / 26

7 / 26

7 / 26

7 / 26

8 / 26

8 / 26

8 / 26

8 / 26

8 / 26

8 / 26

8 / 26

8 / 26

+

+

9 / 26

a data type called Config isthe linchpin of vlogsl; itprovides a first-classrepresentation of a Verilogdevice

event queues: active,non-blocking, future, etc.

current and past valuesof all source-level nodes

top-level input, clock,and reset names

10 / 26

+

+

11 / 26

+

+

12 / 26

+

+

12 / 26

+

12 / 26

12 / 26

13 / 26

13 / 26

13 / 26

13 / 26

13 / 26

14 / 26

14 / 26

15 / 26

15 / 26

vlogsl does symbolic simulation

synthesizeable and behavioral Verilog

time efficient, extra memory required

vlogsl function: simulate

vlogsl is integrated with an SMT solver

integrated with an efficient bit-vector solver (STP)

vlogsl function: querySMT

16 / 26

17 / 26

18 / 26

Intel Xeon X5570 (2.93GHz, 8MB L3, Nehalem), 24 GBRAM, Linux kernel 2.6.18, 64-bit. ghc 6.10.4 with -O1.VCS-MX D-2009.12 Full64.

vlogsl strategiesrandom 0.070sbreadth 0.293s

backtrack 0.013ssymbolic 0.018smixed 0.015s

vlogsl vs SystemVerilog +script

random 0.070sscript 7.111s

19 / 26

I2C serial bus:

two serial, open-drain lines: clock (SCL), and data (SDA)

multi-master bus (requires arbitration), 7-bit addressing

used for low speed peripherals (speakers, cell-phone displays)

20 / 26

I2C mastering controller fromopencores.org (open source):

core is roughly 1000 lines ofVerilog, FPGA proven

capable of multi-mastering

uses opencores.org“wishbone” interface

21 / 26

I2C arbitration process:

SCL

SDA

SDA0

SDA1

22 / 26

multi-mastering very difficult to test

opencores.org tested in real-world, no bugs found

submitted a potential bug, found via vlogsl, to author

23 / 26

what vlogsl allowed us to do:

encapsulate bus transactions within an algebraic data type

iteratively insert delays between two conflicting transactions

re-use the initialization simulation steps, via backtracking

observe correctness, via querying statements

potential bug:

with just the right delay, slave reads wrong data (all 0s)

24 / 26

Intel Xeon X5570 (2.93GHz, 8MB L3, Nehalem), 24 GBRAM, Linux kernel 2.6.18, 64-bit. ghc 6.10.4 with -O1.VCS-MX D-2009.12 Full64.

I2C write + read ×1 (vlogsl) 74.870sI2C write + read ×4 (vlogsl) 299.06s

I2C write + read ×1 (vcs) 0.404sI2C write + read ×4 (vcs) 0.470s

25 / 26

summary and upcoming work:

strategy paradigm

vlogsl

novel use cases

I2C

vlogsl

large case study

26 / 26