Track F: Embedded Systems – Functional specifications


An embedded system is a combination of hardware and software whose purpose is to control a device, a process or a larger system often with real-time constraints. Specific examples of embedded systems include: those controlling the ABS of a car or the operation of its engine; the automatic pilot of an aircraft; the chipset and software within a set-top box for digital TV; a pacemaker; chips within telecom switching equipment; ambient devices; and control systems embedded in a nuclear reactor (including its sensors, actuators, control algorithms, filters, etc).
Within the chair Computer Architecture for Embedded Systems (CAES) research areas are on tiled heterogeneous architectures to support a flexible and scalable platforms, including the communication between the tiles using a Network-on-Chip, and how to efficiently design, model, reason about and use these architectures. Standard approaches have great difficulties in partitioning an application, often given in the form of a C or C++ program, into separate communicating tasks, such that each task can be executed by one of the cores on the tiled architecture. New, more abstract approaches are needed.
A promising perspective on this problem area is given by functional programming languages. A program written in such a language is rather close to a mathematical specification of the application at hand, easier to partition such that mapping the individual tasks to a multi-core architecture becomes possible, better suitable to reason about, and executable such that high-level testing is possible. 
Besides, a functional language is very suitable to specify digital architectures by themselves since a digital circuit can be seen as a function that transforms input signals into output signals. In the chair CAES the system CλaSH (for CAES LAnguage on Synchronous Hardware) is developed that is able to process an architecture description given in the functional programming language Haskell such that it can be mapped onto an FPGA (Field Programmable Gate Array), i.e., the circuit structure of the FPGA can be configured according to the Haskell specification.
Suggested topics
Several research questions follow from this approach, such as:
Specification of an embedded system in the functional language Haskell
Multi-core architectures from a functional perspective
Mapping algorithms on reconfigurable architectures
Architectures with multiple clocks
Composability of specifications
Extending CλaSH with supporting tools
and many more
For the Twente Student conference on IT we would like to receive papers that address one of these topics or any other topic that fits in Embedded Systems from the perspective as described above.
For further information on the content of this track, you may contact the track chair, Jan Kuper, For any information on the conference organization, please contact the conference chair (