MATLAB/Simulink implementation of ForSyDe

University essay from KTH/Skolan för elektroteknik och datavetenskap (EECS)

Author: Andrea Silvestro; [2021]

Keywords: ;

Abstract: Nowadays, it is possible to integrate an increasing number of functionalities on a single chip thanks to the state of the art technology in Electronic design automation. However, designing highly complex electronic systems quickly and reliably requires dealing with all such functionalities, which can be difficult as it requires a long and challenging design process because low-level details are necessary to obtain a functional implementation. One approach to deal with this complexity is to tackle SoC design from a high-level abstraction standpoint. Then, the numerous functionalities can be described and possibly addressed at a high level, as long as the newly created abstraction gap is taken care of. Time-to-market is of crucial importance when designing a product. A design process done at a high-level of abstraction considerably reduces the time required to obtain the final product. ForSyDe was created to address the problem of moving system design (I.E. System on Chip, Hardware, and Software systems) to a higher level of abstraction and bridge the abstraction gap by transformational design refinement. Currently, ForSyDe is implemented in the functional language Haskell and SystemC. The design flow starts from executable application models with individual design constraints that are a consistent part of ForSyDe ’s goals and this thesis’s primary focus. This thesis project presents the implementation of ForSyDe in the widely used modelling software MATLAB/Simulink. This new implementation allows using the ForSyDe methodology together with the powerful simulation tools offered by Simulink and Matlab. The thesis describes and analyses the different Models of Computation (MoCs) used by ForSyDe. It then presents the ForSyDe methodology and its existing Haskell implementation (on which the Simulink implementation is based). The Simulink simulation engine is introduced to show the differences and similarities with Haskell. The Simulink library developed is based on the ForSyDe-Shallow module (an Embedded Domain-Specific Language part of the Haskell implementation). The limits and opportunities introduced by the Simulink implementation are discussed in this thesis. Like the rest of the documentation, all the existing code is available on the Github repository. The evaluation and comparison of the ForSyDe-Simulink library are also done with a concrete application model that is an Audio Filter subsystem of an audio equalizer system. Simulink is concluded to be more efficient in performance considering the execution time and the memory consumption, but it is not suitable to properly accommodate ForSyDe-Shallow due to a lack of expressiveness. 

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)