23.10.2014 Views

ELVeN: Effective Layered Verification of Networks on chips

ELVeN: Effective Layered Verification of Networks on chips

ELVeN: Effective Layered Verification of Networks on chips

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<str<strong>on</strong>g>Effective</str<strong>on</strong>g> <str<strong>on</strong>g>Layered</str<strong>on</strong>g> <str<strong>on</strong>g>Verificati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g><br />

<str<strong>on</strong>g>Networks</str<strong>on</strong>g> <strong>on</strong> <strong>chips</strong><br />

Bas Joosten<br />

Julien Schmaltz<br />

Freek Verbeek<br />

Bernard van Gastel<br />

Tuesday, 6March, 12


About me<br />

• Educati<strong>on</strong>:<br />

–Bachelor Applied Physics<br />

–Master Applied Mathematics<br />

• Hobbies<br />

–Sailing<br />

–Music<br />

–Ampersand<br />

Tuesday, 6March, 12


About me<br />

• Educati<strong>on</strong>:<br />

–Bachelor Applied Physics<br />

–Master Applied Mathematics<br />

• Hobbies<br />

–Sailing<br />

–Music<br />

–Ampersand<br />

–GeNoC (since Jan 2012)<br />

Tuesday, 6March, 12


Future Work<br />

xMAS<br />

language<br />

specify<br />

Model<br />

Instantiated Theorems<br />

Functi<strong>on</strong>al Correctness<br />

Starvati<strong>on</strong><br />

Freedom<br />

Evacuati<strong>on</strong><br />

Memory<br />

C<strong>on</strong>sistency<br />

Verilog<br />

Instantiated Theorems<br />

Tuesday, 6March, 12


Verifying hardware<br />

xMAS<br />

language<br />

specify<br />

Model<br />

Instantiated Theorems<br />

Functi<strong>on</strong>al Correctness<br />

Starvati<strong>on</strong><br />

Freedom<br />

Evacuati<strong>on</strong><br />

Memory<br />

C<strong>on</strong>sistency<br />

Verilog<br />

Instantiated Theorems<br />

Tuesday, 6March, 12


Example: (<strong>on</strong>e-bit) network<br />

with two (simple) queues<br />

irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


Example: (<strong>on</strong>e-bit) network<br />

with two (simple) queues<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

irdy<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

data<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

irdy<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

data<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

irdy<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

data<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

irdy<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

D<br />

Clk<br />

1<br />

Q<br />

Q<br />

data<br />

Tuesday, 6March, 12


irdy<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

irdy<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

D<br />

Clk<br />

0<br />

Q<br />

Q<br />

data<br />

Tuesday, 6March, 12


Approach<br />

VeriLog-states<br />

irdy<br />

D<br />

Clk<br />

Q<br />

Q<br />

D<br />

Clk<br />

Q<br />

Q<br />

irdy<br />

xMAS-states<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


Approach<br />

VeriLog-states<br />

irdy<br />

D<br />

Clk<br />

Q<br />

Q<br />

D<br />

Clk<br />

Q<br />

Q<br />

irdy<br />

xMAS-states<br />

trdy<br />

trdy<br />

AND<br />

AND<br />

AND<br />

OR<br />

OR<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

some mapping<br />

Tuesday, 6March, 12


Approach<br />

Verilog HDL<br />

xMAS<br />

irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

OR<br />

AND<br />

OR<br />

AND<br />

Equivalence<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Tuesday, 6March, 12


Approach<br />

Verilog HDL<br />

xMAS<br />

irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

OR<br />

AND<br />

OR<br />

AND<br />

Equivalence<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Some property<br />

Tuesday, 6March, 12


Approach<br />

Verilog HDL<br />

xMAS<br />

irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

OR<br />

AND<br />

OR<br />

AND<br />

Equivalence<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Some property<br />

Some property<br />

Tuesday, 6March, 12


Approach<br />

Verilog HDL<br />

xMAS<br />

irdy<br />

D<br />

Q<br />

D<br />

Q<br />

irdy<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

trdy<br />

trdy<br />

AND<br />

OR<br />

AND<br />

OR<br />

AND<br />

Equivalence<br />

data<br />

D<br />

Q<br />

D<br />

Q<br />

data<br />

Clk<br />

Q<br />

Clk<br />

Q<br />

Some property<br />

Some property<br />

Tuesday, 6March, 12


C<strong>on</strong>clusi<strong>on</strong>s<br />

• Design and verify NoCs<br />

–Design with high-level languages<br />

–Verify low-level implementati<strong>on</strong>s<br />

Tuesday, 6March, 12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!