ELVeN: Effective Layered Verification of Networks on chips
ELVeN: Effective Layered Verification of Networks on chips
ELVeN: Effective Layered Verification of Networks on chips
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