Design Automation for Embedded Systems

, Volume 20, Issue 1, pp 1–19 | Cite as

Applying SMT-based verification to hardware/software partitioning in embedded systems

  • Alessandro B. TrindadeEmail author
  • Lucas C. Cordeiro


When performing hardware/software co-design for embedded systems, the problem of which functions of the system should be implemented in hardware (HW) or in software (SW) emerges. This problem is known as HW/SW partitioning. Over the last 10 years, a significant research effort has been carried out in this area. In this paper, we present two new approaches to solve the HW/SW partitioning problem by using verification techniques based on satisfiability modulo theories (SMT). We compare the results using the traditional technique of integer linear programming, specifically binary integer programming and a modern method of optimization by genetic algorithm. The experimental results show that SMT-based verification techniques can be effective in particular cases to solve the HW/SW partition problem optimally using a state-of-the-art model checker based on SMT solvers, when compared against traditional techniques.


Hardware/software co-design Embedded systems Partitioning  Binary integer programming Genetic algorithm  Formal verification 



The authors thank Dr. Z.A. Mann for the contribution with the Part 2 test vectors. The authors also thank the anonymous reviewers for their comments, which helped them to improve the draft version of this paper. This research was supported by CNPq and FAPEAM grants.


  1. 1.
    Arató P, Juhász S, Mann ZA, Orbán A, Papp D (2003) Hardware/software partitioning in embedded system design. In Proceedings of the IEEE international symposium of intelligent signal processing, pp 192–202Google Scholar
  2. 2.
    Mann Z, Orbán A, Arató P (2007) Finding optimal hardware/software partitions. In Formal Methods in System Design v. 31. Springer Science+Business Media, Berlin, pp 241–263Google Scholar
  3. 3.
    Baier C, Katoen J-P (2008) Principles of model checking. The MIT Press, LondonzbMATHGoogle Scholar
  4. 4.
    Clarke E, Emerson E, Sifakis J (2009) Model checking: algorithmic verification and debugging. Commun ACM 52(11):74–84CrossRefGoogle Scholar
  5. 5.
    Rao S (2009) Engineering optimization: theory and practice, 4th edn. Wiley, HobokenCrossRefGoogle Scholar
  6. 6.
    Biere A (2009) Bounded model checking. In: Biere A, van Maare H (eds) Handbook of satisfiability. IOS Press, AmsterdamGoogle Scholar
  7. 7.
    Clarke E, Kroening D, Lerda F (2004) A tool for checking ANSI-C programs. Proc Tools Algorithms Constr Anal Syst LNCS 2988:168–176CrossRefGoogle Scholar
  8. 8.
    Armando A, Mantovani J, Platania L (2006) Bounded model checking of software using SMT solvers instead of SAT solvers. SPIN LNCS 3925:146–162Google Scholar
  9. 9.
    Armando A, Mantovani J, Platania L (2009) Bounded model checking of software using SMT solvers instead of SAT solvers. Int J Softw Tools Technol Transfer 11(1):69–83CrossRefGoogle Scholar
  10. 10.
    Ganai MK, Gupta A (2006) Accelerating high-level bounded model checking. In Proceedings of the IEEE/ACM International Conference on Computer-Aided Design, pp 794–801Google Scholar
  11. 11.
    Cordeir L, Fischer B, Marques-Silva J (2012) SMT-based bounded model checking for embedded ANSI-C software. IEEE Trans Softw Eng 38(4):957–974CrossRefGoogle Scholar
  12. 12.
    Cordeiro L, Fischer B (2011) Verifying multi-threaded software using SMT-based context-bounded model checking. In Proceedings of the \(33^{\rm rd}\) International Conference on Software Engineering, pp 331–340Google Scholar
  13. 13.
    Ramalho M, Lopes M, Rodrigues F, Marques H, Cordeiro L, Fischer B (2013) SMT-based bounded model checking of C++ programs. In Proceedings of the International Conference and Workshops on the Engineering of Computer-Based Systems, pp 147–156, IEEEGoogle Scholar
  14. 14.
    Teich J (2012) Hardware/software codesign: the past, the present, and predicting the future. In Proceedings of the IEEE, vol. 100, pp 1411–1430, 13 MayGoogle Scholar
  15. 15.
    MathWorks The, Inc. (2013) MATLAB (version R2013a). Natick, MAGoogle Scholar
  16. 16.
    Tranquillo J (2011) Matlab for engineering and the life sciences. Synthesis Lectures on Engineering. Morgan & ClaypoolGoogle Scholar
  17. 17.
    Hong L, Cai J (2010) The application guide of mixed programming between MATLAB and other programming languages. In Proceedings of the 2nd International Conference on Computer and Automation Engineering (ICCAE), pp 185–189Google Scholar
  18. 18.
    Daskalaki S, Bribas T, Housos E (2004) An integer programming formulation for a case study in university timetabling. Eur J Oper Res 153:117–135CrossRefzbMATHGoogle Scholar
  19. 19.
    Belegundu A, Chandrupatla T (2011) Optimization concepts and applications in engineering, 2nd edn. Cambridge University Press, CambridgezbMATHGoogle Scholar
  20. 20.
    Haupt R, Haupt S (2004) Practical genetic algorithms, 2nd edn. John Wiley & Sons, HobokenzbMATHGoogle Scholar
  21. 21.
    Mitchell M (1999) An introduction to genetic algorithm, 5th edn. MIT Press, BostonGoogle Scholar
  22. 22.
    Guthaus M, Ringenberg J, Ernst D, Austin T, Mudge T, Brown R (2001) MiBench: a free, commercially representative embedded benchmark suite. In Proceedings of the IEEE 4th annual workshop on workload characterization, pp 3–14Google Scholar
  23. 23.
    Arató P, Mann ZA, Orbán A (2005) Algorithmic aspects of hardware/software partitioning. ACM Trans Des Autom Electron Syst (TODAES) 10:136–156CrossRefGoogle Scholar
  24. 24.
    Wang H, Zhang H (2010) Improved HW/SW partitioning algorithm on efficient use of hardware resource. In Proceedings of the 2nd International Conference on Computer and Automation Engineering, pp 682–685Google Scholar
  25. 25.
    Sapienza G, Seceleanu T, Crnknovic I (2013) Partitioning decision process for embedded hardware and software deployment. In IEEE 37th Annual Conference and Workshops on Computer Software and Applications, pp 674–680Google Scholar
  26. 26.
    Bhattacharya A, Konar A, Das S, Grosan C, Abraham A (2008) Hardware software partitioning problem in embedded system design using particle swarm optimization algorithm. In Proceedings of the International Conference on Complex, Intelligent and Software Intensive Systems, pp 171–176Google Scholar
  27. 27.
    Wang G, Gong W, Kastner R (2006) Application partitioning on programmable platforms using the ant colony optimization. J Embed Comput Embed Process Syst 2:119–136Google Scholar
  28. 28.
    Luo L, He H, Liao C, Dou Q (2010) Hardware/Ssoftware partitioning for heterogeneous multicore SOC using particle swarm optimization and immune clone (PSO-IC) algorithm. In Proceedings of the IEEE International Conference on Information and Automation, pp 490–494Google Scholar
  29. 29.
    Jianliang Y, Manman P (2011) Hardware/software partitioning algorithm based on wavelet mutation binary particle swarm optimization. In Proceedings of the IEEE 3rd International Conference on Communication Software and Network, pp 347–350Google Scholar
  30. 30.
    Jiang Y, Zhang H, Jiao X, Song X, Hung W, Gu M, Sun J (2012) Uncertain model and algorithm for hardware/software partitioning. In Proceedings of the IEEE Computer Society Annual Symposium on VLSI, pp 243–248Google Scholar
  31. 31.
    Jigang W, Srikanthan T, Chen G (2010) Algorithmic aspects of hardware/software partitioning: 1D search algorithms. IEEE Trans Comput 59(4):532–544CrossRefMathSciNetGoogle Scholar
  32. 32.
    Eimuri T, Salehi S (2010) Using DPSO and B&B algorithms for hardware/software partitioning in co-design. In Proceedings of the Second International Conference on Computer Research and Development, pp 416–420Google Scholar
  33. 33.
    Huong P, Binh N (2012) An approach to design embedded systems by multi-objective optimization. In Proceedings of the International Conference on Advanced Technologies for Communications, pp 165–169Google Scholar
  34. 34.
    Li S, Liu Y, Hu XS, He X, Zhang Y, Zhang P, Yang H (2013) Optimal partition with block-level parallelization in C-to-RTL synthesis for streaming applications. In Proceedings of the 18th Asia and South Pacific Design Automation Conference, pp 225–230Google Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  1. 1.Electronic and Information Research CenterFederal University of Amazonas (UFAM)ManausBrazil

Personalised recommendations