In the last few years, the spread and importance of embedded systems have been even more increasing but it is still not yet possible to completely engineer their system-level design flow.
The previous sentence opens the main abstract of the HiPEAC HepsyCode methodology and tool tutorial held in Manchester. But, what is HepsyCode and what are the main issues related to this methodology? To answer to such a question, it is needed to know the main aspects related to HW/SW Co-Design in term of design flow and activities within the context of the so called “Electronic Design Automation” (EDA) domain.
By defining the “design flow” as a sequence of steps that lead to the implementation of an application-specific, possibly embedded, digital electronic device, each step can be partially or fully automated using a set of SW tools (i.e. EDA Tools). In such a context, the choice of the best HW/SW implementation technologies can be very critical in terms of non-functional constraints and time to market. This problem, otherwise, has been simply described as a trade off among various design metrics (performance, power, size, cost etc.) and, nowadays, there is no difference between what hardware or software can implement from the functional point of view. Furthermore, today, most of the time is spent for simulation activities (using different modelling languages at different level of abstractions) and to validate and verify the possible solutions taken into account by the designers.
HepsyCode offers an innovative methodology and a toolchain to manage the main issues related to the design of complex embedded systems taking into account different metrics to produce as output a suitable solution considering different application domains such as automotive, aerospace, railway, etc.
The whole work is inserted into the ECSEL RIA 2016 MegaM@Rt2 European Project, that would create a framework incorporating model-based methods and tools for continuous development and validation of complex industrial systems. HepsyCode aims to close the gap between high-level description of complex systems (based also on model-driven and mega-modeling theories and engineering activities) and the “so close to the reality” HW/SW implementations, considering different transformations to automatically suggest feasible (and sub-optimal) solutions starting from system requirements and application models.
The tutorial has been structured into different talks. The first part treated HW/SW Co-Design state-of-the-art, HepsyCode design flow, with focus on metrics evaluation and estimation activities, and the System-Level Design Space Exploration step, supported by an evolutionary algorithm, that performs multi-objective optimizations by means of a meta-heuristic approach, and simulations, that validate the results. Such a step is able to find a HW/SW partitioning of the application specification and a mapping of the partitioned entities onto an automatically defined heterogeneous multi-processor architecture. The second part introduced more strictly constraints and requirements into the design flow, considering hard real-time situations and safety issues to guarantee spatial and temporal isolation, avoiding interferences among applications with different levels of criticality that share HW resources. The last part focused on the need of a monitoring action on the final systems. The entire tutorial also included a (live) interactive demonstration to clarify different methodology aspect and to show in details tools exploitation.
We hope to enhance and re-propose the tutorial in future conferences (or meetings and/or special events) trying to involve as many people as possible. In conclusion: with this blog post we are sure you will not miss the next HepsyCode tutorial so we will be waiting for you!!!. In the meantime, you can see (and download) the tutorial slides here.