Hardware-software co-design of embedded systems

W.H. Wolf
1994 Proceedings of the IEEE  
This paper surveys the design of embedded computer systems, which use software running on programmable computers to implement system functions. Creating an embedded computer system which meets its performance, cost, and design time goals is a hardware-software co-design p r o b l e w h e design of the hardware and software components influence each other. This paper emphasizes a historical approach to show the relationships between well-understood design problems and the as-yet unsolved
more » ... in co-design. We describe the relationship between hardware and sofhvare architecture in the early stages of embedded system design. We describe analysis techniques for hardware and software relevant to the architectural choices required for hardware-software co-design. We also describe design and synthesis techniques for co-design and related problems. tor WIL's. The typical ASIC designer will not deal with transistors at all, but will choose logic gates from a library and wire them together to implement the desired function. Whether the components to be selected and interconnected are logic gates or CPU's, the designer faces the same problem: characterizing the components; understanding the operation of networks of components; and choosing a network topology based on the requirements. Embedded system design can be divided into four major tasks: partitioning the function to be implemented into smaller, interacting pieces; allocating those partitions to microprocessors or other hardware units, where the function may be imple-
doi:10.1109/5.293155 fatcat:jytgx6etfnhbpfz5zqxbv6oiua