Design Automation for Embedded Systems

, Volume 2, Issue 2, pp 165–193 | Cite as

An Algorithm for Hardware/Software Partitioning Using Mixed Integer Linear Programming

  • Ralf Niemann
  • Peter Marwedel


One of the key problems in hardware/software codesign is hardware/software partitioning. This paper describes a new approach to hardware/software partitioning using integer programming (IP). The advantage of using IP is that optimal results are calculated for a chosen objective function. The partitioning approach works fully automatic and supports multi-processor systems, interfacing and hardware sharing. In contrast to other approaches where special estimators are used, we use compilation and synthesis tools for cost estimation. The increased time for calculating values for the cost metrics is compensated by an improved quality of the values. Therefore, fewer iteration steps for partitioning are needed. The paper presents an algorithm using integer programming for solving the hardware/software partitioning problem leading to promising results.

hardware/software codesign hardware/software partitioning embedded systems mixed integer linear programming 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A. Bender. Design of an Optimal Loosely Coupled Heterogeneous Multiprocessor System. European Design & Test Conference (ED&TC), pages 275–281, 1996.Google Scholar
  2. 2.
    W. Ecker. Using VHDL for HW/SW Co-Specification. International Conference on Computer-Aided Design (ICCAD), Pages 500–505, 1993.Google Scholar
  3. 3.
    R. Ernst, J. Henkel, and T. Benner. Hardware-software Cosynthesis for Microcontrollers. IEEE Design & Test, Vol. 12, pages 64–75, 1993.Google Scholar
  4. 4.
    P. Eles, Z. Peng, and A. Doboli. VHDL System-level Specification and Partitioning in a Hardware/Software Co-Synthesis Environment. Third International Workshop on Hardware/Software Codesign, Grenoble, pages 49–55, 1994.Google Scholar
  5. 5.
    R.K. Gupta, C. Coelho, and G. De Micheli. Synthesis and Simulation of Digital Systems Containing Interacting Hardware and Software Components. 29th ACM, IEEE Design Automation Conference, pages 225–230, 1992.Google Scholar
  6. 6.
    M.R. Garey and D.S. Johnson. Complexity Results for Multiprocessor Scheduling under Resource Constraints. SIAM J. Comput., pages 397–411, 1975.Google Scholar
  7. 7.
    D. Gajski, F. Vahid, S. Narayan, and J. Gong. Specification and Design of Embedded Systems. Prentice-Hall, 1994Google Scholar
  8. 8.
    D. Henkel, J. Herrmann, and R. Ernst. An Approach to the Adaption of Estimated Cost Parameters in the COSYMA System. Third International Workshop on Hardware/Software Codesign, Grenoble, pages 100–107, 1994.Google Scholar
  9. 9.
    J. Henkel, R. Ernst, W. Ye, M. Trawny, and T. Benner. COSYMA: Ein System zur Hardware/Software Co-Synthese. GME Fachbericht Nr. 15 Mikroelektronik, pages 167–172, 1995.Google Scholar
  10. 10.
    A. Jantsch, P. Ellervee, J. Öberg, A. Hemani, and H. Tenhuen. Hardware/Software Partitioning and Minimizing Memory Interface Traffic. European Design Automation Conference (EURO-DAC), pages 226–231, 1994.Google Scholar
  11. 11.
    A. Kalavade and E.A. Lee. A Global Critically/Local Phase Driven Algorithm for the Constrained Hardware/Software Partitioning Problem. Third International Workshop on Hardware/Software Codesign, Grenoble, pages 42–48, 1994.Google Scholar
  12. 12.
    A. Kalavade and E.A. Lee. The Extended Partitioning Problem: Hardware/Software Mapping and Implementation-Bin Selection. Proceedings of the 6th International Workshop on Rapid Systems Prototyping, 1995.Google Scholar
  13. 13.
    B. Landwehr, P. Marwedel, and R. Dömer. OSCAR: Optimum Simultaneous Scheduling, Allocation and Resource Binding Based on Integer Programming. Proceedings of the EURO-DAC, pages 90–95, 1994.Google Scholar
  14. 14.
    R. Niemann, and P. Marwedel. Hardware/Software Partitioning using Integer Programming. European Design & Test Conference (ED&TC), pages 473–479, 1996.Google Scholar
  15. 15.
    Z. Peng and K. Kuchcinski. An Algorithm for Partitioning of Application Specific Systems. Proceedings of the European Conference on Design Automation (EDAC), pages 316–321, 1993.Google Scholar
  16. 16.
    F. Vahid, J. Gong, and D. Gajski. A Binary-Constraint Search Algorithm for Minimizing Hardware during Hardware/Software Partitioning. European Design Automation Conference (EURO-DAC), pages 214–219, 1994.Google Scholar

Copyright information

© Kluwer Academic Publishers 1997

Authors and Affiliations

  • Ralf Niemann
    • 1
  • Peter Marwedel
    • 1
  1. 1.Dept. of Computer Science XIIUniversity of DortmundDortmundGermany

Personalised recommendations