Using Formal Methods for VLSI Development Using Java and JML in - - PowerPoint PPT Presentation

using formal methods for vlsi development
SMART_READER_LITE
LIVE PREVIEW

Using Formal Methods for VLSI Development Using Java and JML in - - PowerPoint PPT Presentation

Using Formal Methods for VLSI Development Using Java and JML in the Real World Joseph Kiniry Department of Computer Science University College Dublin Asynchronous VLSI What is AVLSI? delay insensitive circuits power invariant


slide-1
SLIDE 1

Department of Computer Science University College Dublin

Using Formal Methods for VLSI Development

Using Java and JML in the “Real World” Joseph Kiniry

slide-2
SLIDE 2

Department of Computer Science University College Dublin 2

Asynchronous VLSI

What is AVLSI?

delay insensitive circuits power invariant design scalability process invariant

Manchester vs. Caltech

slide-3
SLIDE 3

Department of Computer Science University College Dublin 3

Typical VLSI Process

high level specification (e.g., VHDL) low-level specification (e.g., Verilog) automated layout 99% commercial tools

slide-4
SLIDE 4

Department of Computer Science University College Dublin 4

An AVLSI Design Process

multiple specification levels

multiple Java realizations CSP (Concurrent Sequential Processes) production rules Verilog automated and manual layout

cosimulation for behavioral equivalence

testing for checking formal refinement

slide-5
SLIDE 5

Department of Computer Science University College Dublin 5

Unit Testing and Cosimulation

must test at multiple granularities

cell, unit, CPU

test with and without an operating system

minimal test OS and Linux

test at all refinement levels

a test written in Java does not necessarily conform to any test written for CSP

slide-6
SLIDE 6

Department of Computer Science University College Dublin 6

Challenges

performance

Your try simulating a processor in Java!

scalability

massive memory and thread use

robustness

if simulation takes five days and your simulator crashes after four…

correctness!

you cannot patch a fabricated chip

slide-7
SLIDE 7

Department of Computer Science University College Dublin 7

Observations on Arrival

major misuse of concurrency data structure abuse aimless optimization untracked requirements changes no documentation process

slide-8
SLIDE 8

Department of Computer Science University College Dublin 8

Recommendations and Response

refine the software engineering process

particularly wrt docs and specs

use commercial tools where appropriate

analysis with JProbe and jProfiler revision control with Perforce simulation with Cadence

slide-9
SLIDE 9

Department of Computer Science University College Dublin 9

Recommendations and Response (2)

Open Source tools where appropriate

custom code coverage with Gretel metrics with JavaNCSS and SlocCount documentation with SGML and LaTeX specification with JML build system with Ant

slide-10
SLIDE 10

Department of Computer Science University College Dublin 10

Convincing the Boss and Coworkers

lead by example gather hard data and present it well use the “soft sell”

suggest solutions and solve other people’s problems in intriguing ways

convince key personnel

key developers, managers, executives, and board members

slide-11
SLIDE 11

Department of Computer Science University College Dublin 11

Problems and Resistance

speed and memory issues jmlc and jmlrac

non-linear system compilation impact

configurability of compilation and testing

unit of configuration is the class would prefer Eiffel approach with configurability by assertion type

lack of support from above

long-term prospects for use low

slide-12
SLIDE 12

Department of Computer Science University College Dublin 12

Positive Results

performance

typical: 10 minute change for 10% atypical: 1 man-month for 1000%

memory use

garbage collection abuse iterators, events, and string buffers

  • perating system VM abuse
  • verall memory size
slide-13
SLIDE 13

Department of Computer Science University College Dublin 13

Positive Results (2)

configuration management

plain text configuration files

properties, bundles, and custom

system monitoring

domain-specific run-time monitoring framework

process changes

trading JML for English docs