This text covers aspects of the co-design of hardware and software, including methods and examples for designing general purpose and embedded computing systems based on instruction set processors, and embedded control systems and applications to automotive electronics.