{'fraction_non_alphanumeric': 0.02743362831858407, 'fraction_numerical': 0.005752212389380531, 'mean_word_length': 4.872727272727273, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Hardware/Software Co-design Flow Using Automatic Generation of Embedded System Framework Based on Interacting FSM Model

Today’s embedded System is complex. An embedded system design project may involve of various engineering field. A rapidly-available and well-defined framework code brings advantages to the team consists of many engineers from various domains. This framework must be easy to use for communication purpose and analysis (model). This paper proposes a design flow based on a model which is high level but precise enough to use in automatic generation of the embedded system framework code. The model is flexible for rapid modification. The event driven paradigm and the FSM are used in the model. The design flow uses the model to generate framework code based on an existing platform. The work presented in this paper produces tool for the generation which is called EBGES. The proposed model describes the system as set of finite state machines (FSM) and events. This model serves for two purposes: (1) to be discussed by the developers/various engineers before deciding the platform and the architecture of the system, (2) to be used for generating the framework code. An automatic code generator is developed to produce a framework code from the model. The framework consists of (1) the FSM for every block, (2) communications between the FSMs, (3) function prototypes (for software) for function used by FSM, (4) interface of hardware module used by the FSMs, (5) instantiation of the platform. The generator software takes the model in form of annotated diagrams which are created schematically using a GUI environment. The diagrams follow UML standard. The outputs are VHDL code for hardware and C code for the software part. Example of calculator application is developed to test the tool and the flow. The generated framework code in the calculator experiment accelerated the development. Up to 51% of the code is generated automatically and 49 % of the code is written manually. The result of the experiment shows significantly improvement on design productivity which is the comes from: (1) abstraction of the behavior of subsystems/modules (HW or SW) by hiding unnecessary detail and (2) automatic generation of the framework code.