Embedded systems are application-specific computer systems that are embedded in a larger device. They are responsible for controlling the input, output, and correct operation of the systems in which they are embedded. Today, embedded systems can be found everywhere: In consumer appliances like smartphones and washing machines, in cars and airplanes, in medical devices, and industrial robots and many others.
Typically, embedded systems have to fulfill real-time requirements and also have to take care of many other non-functional constraints like their power usage. Their use in safety-critical applications and the use of non-standard hardware and software makes the development of embedded systems much more difficult than desktop computer software.
To solve these challenges, the Embedded Systems Group of the Department of Computer Science at the University of Kaiserslautern is developing the Averest toolkit for the model-based design of software and hardware, based on the synchronous programming language Quartz at its center. Quartz, together with our intermediate format AIF, is ideally suited for the development of the complex control logic which is needed for modern embedded systems. Combined with the model-based design approach, in which an initial high-level model of the system is successively refined, Quartz allows for easier analysis and verification than conventional languages like C, C++, or VHDL. Quartz programs can be automatically compiled to software for microprocessors, or to hardware for FPGAs and ASICs.