Joint Algorithm- and System-Level Design

Abstract

System-Level Design is often utilized for tackling the design complexity of modern embedded systems. It typically start with a specification capturing core algorithms. æAlgorithm development itself largely occurs in Algorithm Design with little or no hardware concern. Currently, algorithm and system design are disjoint; system level specifications are manually implemented which leads to the specification gap, which leads to extreme tedious and time-consuming development cycle concerning software/hardware co-design. æIn this work, we bridge algorithm and system design creating a unified design flow facilitating algorithm and system co-design. It enables algorithm realizations over heterogeneous platforms, while still tuning the algorithm according to platform needs. ææIt realizes a unified development cycle across algorithm modeling and system-level design with quick responses to design decisions on algorithm-, specification- and system exploration level. It empowers the designer to combine analysis results across environments, apply cross layer optimizations, which will yield an overall optimized design through rapid design iterations. æWe demonstrate the benefits on a case study, showing early computation/communication estimation and rapid prototyping from Simulink models. Results from Virtual Platform performance analysis enable the algorithm designer to improve model structure to better match the heterogeneous platform in an efficient and fast design cycle. æThrough applying our unified design flow, an improved HW/SW is found yielding 50% performance gain compared to a pure software solution. It’s shown that the new flow enables a extreme fast development cycle of few minutes versus months of work in current technology and methodology.