Designing embedded high-performance systems is challenging due to complex algorithms, real-time operations and conflicting goals (e.g. power v.s. performance). Heterogeneous platforms that combine processors and custom hardware accelerators are a promising approach. However, manually designing HW/SW systems is prohibitively expensive due to the immense manual effort.
This paper introduces SimSH: Simulink Sw/Hw CoDesign Framework, which provides an automatic path from an algorithm captured in Simulink to a heterogeneous implementation. Given an allocation and a mapping decision, the SimSH automatically synthesizes the Simulink model onto the heterogeneous target with reconstruction of the synchronization and communication between processing elements. In the process, the SimSH detects an underutilized bus and optimizes communication by packing / unpacking. Synthesizing a heterogeneous implementation from Simulink allows the developer to focus on the algorithm design with rapid validation and test on a heterogeneous platform. We demonstrate synthesis benefits using a Sobel Edge Detection algorithm and target a heterogeneous architecture of Blackfin processor and Spartan3E FPGA. The synthesized solution is 2.68x faster (and energy efficient) over pure SW execution.