Hardware/software co-design in the context of cyber-physical systems (CPS) [2] takes the form of co-designing (i) a control algorithm, and (ii) its software implementation on a distributed and heterogeneous architecture [5, 6]. In domains such as automotive CPS, this involves the design and implementation of multiple controllers on distributed automotive architectures consisting of different electronic control units (ECUs) and communication buses like CAN, FlexRay and automotive Ethernet [13]. Traditionally, following the principle of separation of concerns, control algorithms were designed independent of the implementation platform details. As a result, they made certain assumptions on delays experienced by control signals and assumed, for example, that all sensor inputs necessary for state estimation arrive at the same time. When trying to implement such controllers on an independently designed implementation platform, where many of the controller design or model-level assumptions are not satisfied, an iterative design process that involves testing and adjustments to the controllers and the implementation decisions became necessary. This led to the development of X-in-the-loop simulations, where X can be software and hardware at various stages of implementation, along with which the control algorithms are simulated [1, 14]. The aim is to ensure that the semantics or the behavior of the controller models (or algorithms) are preserved in the final implementation [12].
«
Hardware/software co-design in the context of cyber-physical systems (CPS) [2] takes the form of co-designing (i) a control algorithm, and (ii) its software implementation on a distributed and heterogeneous architecture [5, 6]. In domains such as automotive CPS, this involves the design and implementation of multiple controllers on distributed automotive architectures consisting of different electronic control units (ECUs) and communication buses like CAN, FlexRay and automotive Ethernet [13]. T...
»