on the choice of models of computation for writing executable specifications of system level designs
System level designs are typically heterogeneous, thus combining different technologies. In order to create executable specifications at such a level, a hardware description language, a programming language, or a combination of both is used. However, the resulting description may not be efficient because the ability of each language to capture the system's features is limited by its semantics. This paper presents a methodology for analyzing the efficiency of a set of models of computation to build executable specifications. We defined a set of "behavioral primitives" and evaluated how efficiently they are captured by different models of computation. A debugger/profiler tool was developed. The analysis of the data produced by our tool allows us to derive criteria to choose the most adequate model of computation for each primitive. The analysis of the basic block behavioral primitive is detailed in order to illustrate the method.
executable specifications system level designs behavioral primitives debugger/profiler tool block behavioral primitive hardware-software codesign cad program debugging codesign communicating sequential processes csp computation models selection