Equivalence checking in C-based system-level design by sequentializing concurrent behaviors
ACST'07 Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology
Verification Techniques for System-Level Design
Verification Techniques for System-Level Design
Using counterexample analysis to minimize the number of predicates for predicate abstraction
ATVA'07 Proceedings of the 5th international conference on Automated technology for verification and analysis
Hi-index | 0.00 |
Concurrency is one of the most important issues in system-level design. Interleaving among parallel processes can cause an extremely large number of different behaviors, making design and verification difficult tasks. In this work, we propose a synchronization verification method for system-level designs described in the SpecC language. Instead of modeling the design with timed FSMs and using a model checker for timed automata (such as UPPAAL or KRONOS), we formulate the timing constraints with equalities/inequalities that can be solved by integer linear programming (ILP) tools. Verification is conducted in two steps. First, similar to other software model checkers, we compute the reachability of an error state in the absence of timing constraints. Then, if a path to an error state exists, its feasibility is checked by using the ILP solver to evaluate the timing constraints along the path. This approach can drastically increase the sizes of the designs that can be verified. Abstraction and abstraction refinement techniques based on the counterexample-guided abstraction refinement (CEGAR) paradigm are applied. The proposed verification flow is introduced and some preliminary results are presented here.