Models of Computation and System Description Languages
There are many model-based design flows that differ already on the used system models. In general, one has to be able to describe concurrent behaviors with some notion of time. To this end, several models of computation (MoC) have been developed in computer science; the most important classes are clock-based (synchronous/polysynchronous) systems, data flow process networks, discrete event systems, and cyber-physical systems.
In general, the definition of a MoC precisely determines why, when, which atomic action of a system is executed. For simulation and synthesis, it is moreover important to have an operational MoC, but there are also models in use that leave some system behaviors unspecified so that the later synthesis has to fill these gaps.
Depending on applications, and even more on the selected target architectures, these MoCs have advantages and disadvantages. For an effective use of different target architectures, it is therefore important to be able to automatically translate parts of one MoC to another one. Since synchronous models are particularly well suited for analysis, we start with synchronous models, and then translate them to others for the synthesis of particular systems. To this end, we consider the following MoCs in our design framework Averest:
- Clock-Based Systems
- Dataflow Process Networks (DPNs)
- Discrete-Event Based Systems
- Cyber-physical Systems
E.A. Lee and A. Sangiovanni-Vincentelli
A Framework for Comparing Models of Computation
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (T-CAD)