System-level design models and implementation techniques

Electronic systems need to accommodate rapidly changing product specifications and to reduce design costs together with design turn-around time. To be able to reuse part of previous designs and to be able to include new functionality rapidly, system designers tend to use microcontrollers and digital signal processors (DSPs) as much as possible. For performance reasons they may be forced to design special purpose hardware, but even then there is a strong motivation toward the reuse of parts already designed. This trend will change the industrial landscape and will make the trade and assembly of intellectual properties (IPs) embodied in layouts, RTL designs, and software programs indispensable. We believe that system design should be based on the use of one or more formal models to describe the behavior of the system at a high level of abstraction, before a decision on its decomposition into hardware and software components is taken. Design should then be based on a sequence consisting of the initial functional design (i.e. specifying what the system is intended to do) and its analysis, the mapping of such functional description, into an architecture, and the consequent performance evaluation. The final implementation of the system should be made using automatic synthesis as much as possible from this high level of abstraction, to ensure implementations that are "correct by construction". Validation (through simulation or verification) should be done at the highest possible levels of abstraction.