Computer Design Aided Computer Design Aided Fujita Lab, University of Tokyo Equivalence Checking in C-based System-Level Design by Sequentializing Concurrent.

Slides:



Advertisements
Similar presentations
The Quest for Correctness Joseph Sifakis VERIMAG Laboratory 2nd Sogeti Testing Academy April 29th 2009.
Advertisements

A hardware-software co-design approach with separated verification/synthesis between computation and communication Masahiro Fujita VLSI Design and Education.
SoC Challenges & Transaction Level Modeling (TLM) Dr. Eng. Amr T. Abdel-Hamid ELECT 1002 Spring 2008 System-On-a-Chip Design.
SOC Design: From System to Transistor
Masahiro Fujita Yoshihisa Kojima University of Tokyo May 2, 2008
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Automated Refinement Checking of Concurrent Systems Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University.
High Level Languages: A Comparison By Joel Best. 2 Sources The Challenges of Synthesizing Hardware from C-Like Languages  by Stephen A. Edwards High-Level.
SpecC and SpecCharts Reviewed and Presented by Heemin Park and Eric Kwan EE202A - Fall 2001 Professor Mani Srivastava.
44 nd DAC, June 4-8, 2007 Processor External Interrupt Verification Tool (PEVT) Fu-Ching Yang, Wen-Kai Huang and Ing-Jer Huang Dept. of Computer Science.
Solving Equations = 4x – 5(6x – 10) -132 = 4x – 30x = -26x = -26x 7 = x.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Department of Electrical and Computer Engineering M.A. Basith, T. Ahmad, A. Rossi *, M. Ciesielski ECE Dept. Univ. Massachusetts, Amherst * Univ. Bretagne.
Aug 11, 2006Yogi/Agrawal: Spectral Functional ATPG1 Spectral Characterization of Functional Vectors for Gate-level Fault Coverage Tests Nitin Yogi and.
Copyright  2006 Daniel D. Gajski 1 Extreme Makeover of System Design Science Daniel Gajski Center for Embedded Computer Systems (CECS) University of California,
Copyright  1999 Daniel D. Gajski IP – Based Design Methodology Daniel D. Gajski University of California
Predicate Abstraction for Software and Hardware Verification Himanshu Jain Model checking seminar April 22, 2005.
Matlab as a Design Environment for Wireless ASIC Design June 16, 2005 Erik Lindskog Beceem Communications, Inc.
The Model Checker SPIN Written by Gerard J. Holzmann Presented by Chris Jensen.
Hardware/Software Codesign. Outline Background and Rationale Architecture design constraints and issues Architecture design strategies Example of generic.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
1 Embedded Computer System Laboratory RTOS Modeling in Electronic System Level Design.
13-1 Introduction to Quadratic Equations  CA Standards 14.0 and 21.0  Quadratic Equations in Standard Form.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Unit 2: Engineering Design Process
DOP - A CPU CORE FOR TEACHING BASICS OF COMPUTER ARCHITECTURE Miloš Bečvář, Alois Pluháček and Jiří Daněček Department of Computer Science and Engineering.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
Extreme Makeover for EDA Industry
Section 4-1: Introduction to Linear Systems. To understand and solve linear systems.
Workflow Early Start Pattern and Future's Update Strategies in ProActive Environment E. Zimeo, N. Ranaldo, G. Tretola University of Sannio - Italy.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
An Ideal van Hiele Web- based Model for Computer Programming Learning and Teaching to Promote Collaborative Learning Dr. J. Wey Chen, Professor Department.
The E ngineering Design Process Foundations of Technology The E ngineering Design Process © 2013 International Technology and Engineering Educators Association,
A Framework on Synchronization Verification in System-Level Design Thanyapat Sakunkonchak Satoshi Komatsu Masahiro Fujita Fujita Laboratory University.
Contingency-Constrained PMU Placement in Power Networks
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
1 Embedded Computer System Laboratory Systematic Embedded Software Gerneration from SystemC.
Mohamed Elhawary Computer Science Department Cornell University PERCOM 2008 Zygmunt J. Haas Electrical and Computer Engineering Department Cornell University.
The E ngineering Design Process Advanced Design Applications The E ngineering Design Process Teacher Resource – The First Five Days: Day 2 © 2014 International.
Formal Verification of Synchronization Issues of SpecC Description with Automatic Abstraction Thanyapat Sakunkonchak Masahiro Fujita Department of Electronics.
Panel Discussion High Level Design and ESL: Who Cares? Masahiro Fujita VLSI Design and Education Center (VDEC) University of Tokyo.
Verification of Synchronization in SpecC Description with the Use of Difference Decision Diagrams Thanyapat Sakunkonchak Masahiro Fujita Department of.
Verification of Behavioral Consistency in C by Using Symbolic Simulation and Program Slicer Takeshi Matsumoto Thanyapat Sakunkonchak Hiroshi Saito Masahiro.
Simulink Continuous Library by Dr. Amin Danial Asham.
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
1 Hierarchical Parallelization of an H.264/AVC Video Encoder A. Rodriguez, A. Gonzalez, and M.P. Malumbres IEEE PARELEC 2006.
Digital System Design An Introduction to Verilog® HDL
2. Specification and Modeling
RTL Simulator for VChip Emulator
IP – Based Design Methodology
New Directions in the Development of ABC
LPSAT: A Unified Approach to RTL Satisfiability
Solve a system of linear equation in two variables
All Programmable FPGAs, SoCs, and 3D ICs
Thanyapat Sakunkonchak Masahiro Fujita
Linear Equations in One Variable and Problem Solving
Scheduling Jobs in Multi-Grid Environment
} 2x + 2(x + 2) = 36 2x + 2x + 4 = 36 4x + 4 = x =
CprE 588 Embedded Computer Systems
Solving Equations involving Decimal Coefficients
Solving Equations with Variables on Both Sides
Solving Equations with Variables on Both Sides
Synchronization Verification in System-Level Design with ILP Solvers
Alan Mishchenko University of California, Berkeley
Systems of Linear Equations: An Introduction
Warm-up: Solve the system by any method:
Solving a System of Linear Equations
Presentation transcript:

Computer Design Aided Computer Design Aided Fujita Lab, University of Tokyo Equivalence Checking in C-based System-Level Design by Sequentializing Concurrent Behaviors T. Sakunkonchak 1, T. Matsumoto 1, H. Saito 2, S. Komatsu 1, M. Fujita 1 1 University of Tokyo 2 University of Aizu 2 University of Aizu

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Outline  Introduction  Background  Proposed verification method  Experimental results  Conclusion and future directions

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Introduction (2)  Equivalence checking role in design flow  From specification to RT level, many refinements/modifications are performed  Keeping every incremental refinement equivalent with each other  This work focuses on checking equivalence of concurrent designs  Sequentialize concurrent designs  Equivalence checking the generated sequential ones Specification C Refined Description C Refined Description w/ concurrency SpecC, SystemC RTL Equivalence checking Equiv …

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Outline  Introduction  Background  SpecC language  Synchronization verification  Equivalence checking by symbolic simulation  Proposed verification method  Experimental results  Conclusion and future directions

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Background  Our work is based on SpecC, a C-based system- level design language  SpecC supports HW/SW design, concurrency and synchronization A1B1 void A1() { } void B1() { } void main() { par{ A1.main(); B1.main(); } C1.main(); } void C1() { } C1 void A1() { } void B1() { } void main() { A1(); B1(); C1(); } void C1() { } A1B1C1 notify wait

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design These equations can be solved with Integer Linear Programming Solver  Tas=Tbs, Tae=Tbe  Tas<=T1s<T1e<=T2s<T2e<=Tas  Tbs<=T3s<T3e<=Tbe  T2e<=T3s Synchronization in SpecC (cond)

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Background  Synchronization verification [1]  Focus on verifying communication between concurrent processes  Semantics notify/wait/waitfor are for synchronization  Applying software model checking technique  Predicate abstraction  Counterexample-Guided Abstraction Refinement (CEGAR)  Timing properties can be handled by ILP solver  Several formal properties can be checked formally  Deadlock  Race condition [1] T. Sakunkonchak, et al “ Synchronization Verification in System-Level Design Using ILP Solvers, ” In Third ACM-IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE ’ 2005), July 2005.

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Background  Equivalence checking by symbolic simulation  A well-known formal method for EC  No test vectors, we formally interpret them symbolically  Recently, EC for C programs by utilizing textual difference was proposed in [2]  However, it supports only for sequential designs [2] T. Matsumoto, et al “ An Equivalence Checking Method for C Description based on Symbolic Simulation with Textual Differences, ” IEICE Transaction on Special Section on VLSI and CAD Algorithms, Vol.E88-A, no.12 December 2005.

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Outline  Introduction  Background  Proposed verification method  Synchronization check  Race condition check  Sequentialization  EC by symbolic simulation  Experimental results  Conclusion and future directions

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Proposed verification method (1) SpecC Design 1 SpecC Design 2 Sequential Design 1 Sequential Design 2 Sync. & Race Condition Check Sequentialization Equivalence Check Result: Equiv or Inequiv Pass Fail Terminate With Error

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Proposed verification method (2)  Synchronization check  Applying model checking and solving constraints of Integer Linear Programming (ILP) problem to find if there is any synchronization error, e.g. a process is waiting without being notified (deadlock)  Check whether every pair of notify/wait is eventually communicate  If such an error is found, terminate  Race condition check  Using timing properties  Cond1: T(BB1 starttime ) < T(BB2 endtime )  Cond2: T(BB1 endtime ) > T(BB2 starttime ) BB1 timeline BB2 Cond1 is true Cond2 is false BB1 BB2 Cond1 is false Cond2 is true Cond1 is true Cond2 is true BB1 BB2BB1 BB2 Dependency check Cond1 is false Cond2 is false (Infeasible)

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Example #1  Consider  2 parallel processes  Only two pairs of notify/wait c1 = a1 + b1; c2 = a2 + b2; d1 = c1 * c2; if(d1 != 0) d2 = (c2-c1)/d1; else ERROR: Seq  c1 = a1 + b1; c2 = a2 + b2; notify e1; wait e2; d2 = (c2-c1)/d1; Par 1 wait e1; d1 = c1 * c2; if(d1 != 0) notify e2; else ERROR: Par 2 c1 = a1 + b1; c2 = a2 + b2; d1 = c1 * c2; if(d1 != 0) d2 = (c2-c1)/d1; else ERROR: Seq  Seq  Seq 

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Example #2  Consider  2 parallel processes  Only two pairs of notify/wait c1 = a1 + b1; c2 = a2 + b2; d1 = c1 * c2; if(d1 != 0) d2 = (c2-c1)/d1; else ERROR: Seq  d1 = c1 * c2; wait e1; notify e2; if(d1 == 0) ERROR: Par 2 c1 = a1 + b1; c2 = a2 + b2; notify e1; wait e2; if(d1 != 0) d2 = (c2-c1)/d1; Par 1 Seq  Seq  ?? are at the same level. We need dependency check. Interleaving can cause different behaviors and it is not possible to generate Seq 

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Outline  Introduction  Background  Proposed verification method  Experimental results  Conclusion and future directions

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Experimental results  Since we focus on verifying HW, the designs must not contain  Pointers  Dynamic memory allocation  Recursive functions  Different levels of implementation of  Inverse Discrete Cosine Transform (IDCT)  Vocoder, provided by University of California Irvine (UCI)  Environment  Linux  Pentium4 2.8GHz  2GB RAM

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Experimental results

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Outline  Introduction  Background  Proposed verification method  Experimental results  Conclusion and future directions

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Conclusion  EC by sequentializing concurrent processes  Synchronization check  Race condition check  Sequentialization  EC by symbolic simulation  Even in large design like Vocoder (~10KLOC), EC can be performed  Less communication  Each level is slightly different from each other

Computer Design Aided Computer Design Aided Fujita Lab, University of Tokyo Thank you Q & A

Fujita Lab, Department of Electronics Engineering, School of Engineering, University of Tokyo Aided Design Aided Computer Design Introduction (1)  In VLSI, design complexity  By Moore’s law, linearly increasing every year  Move to higher levels of abstractions, e.g. system- level, or system-on-chip 1E0 1E1 1E2 1E3 1E4 1E5 1E6 size abstraction accuracy System level Behavioral level Register-transfer level Gate level Transistor level