ArticlePDF Available

A Formal Specification Model for Hardware/Software Codesign

Authors:

Abstract and Figures

Embedded controllers for reactive real-time applications are implemented as mixed softwarehardware systems. In this paper we present a model for specification, partitioning, and implementation of such systems. The model, called Codesign Finite State Machines (CFSMs), is based on FSMs and is particularly suited to a specific class of systems with relatively low algorithmic complexity. Pre-existing formal specification languages can be used by the designer to specify the intended behavior of the system and mapped into our model. CFSMs use a non-zero unbounded reaction delay model and hence can be indifferently implemented either in hardware or in software. The implementation only restricts the range of variation of some previously undefined delays, thus preserving formal properties of the specification across implementation refinements. The communication primitive, event broadcasting, is low-level enough to be implemented efficiently and yet general enough to allow higher-level mechanism...
Content may be subject to copyright.
HW synthesis
Partitioning
Formal Languages
FL Compilers
SIS
C code
SW synthesis
Production
Hardware description
(BLIF−MV)
Interfaces
(BLIF−MV)
Scheduler
Template
Hardware description
(STD CELLS)
VIF
Simulation
Formal
Verification
Partitioned Specification
(SHIFT)
System behavior
(SHIFT)
OFF
WAIT
ALARM
*KEY = ON =>
*START
*END = 5 =>
*ALARM = ON
*END = 10 +
*BELT = ON +
*KEY = OFF =>
*ALARM = OFF
*KEY = OFF +
*BELT = ON =>
Added transitions
i
F’
(x = x’) and (*o=0)
(x = x’) or (*o=1)
*i’=1 and
i’=2 =>
*i =0
*i’=1 and
i’=1 =>
*i =0
*i’=1 and i’=2 => *i =0
*i’=1 and i’=1 =>
*i =1 and i =1
*i’=0 or
*i’=1 and i’=2 =>
*i =1 and i =2
*i’=0 or
*i’=1 and i’=1 =>
*i =1 and i =1
*i’=1 and i’=1 => *i =0
*i’=0 => *i =0
*i’=0 => *i =0
*i’=0 => *i =0
*i’=1 and i’=2 =>
*i =1 and i =2
s0
s1
s2
s0
s1
s2
*o’=1 and o’=1 => *o =0
*o’=1 and o’=2 => *o =0
*o’=1 and
o’=2 =>
*o =1 and
o = 1
*o’=1 and
o’=1 =>
*o =1 and
o = 2
*o’=1 and o’=1 =>
*o =1 and o = 1
*o’=0 =>
*o =1 and o =1
*o’=0 =>
*o =1 and o =2
*o’=1 and o’= 2 =>
*o =1 and o = 2
*o’=0 =>
*o’=0 =>
*o’=0 =>
... Behaviors de ne functionality, and the time of communication, whereas channels de ne how the communication is performed. 4.5. BEHAVIORAL HIERARCHY The composition of child behaviors in time is called behavioral hierarchy. ...
... In summary, behavioral hierarchy is captured by the tree of function calls to the behavior main methods. 4.6. SYNCHRONIZATION Concurrent behaviors usually must besynchronized in order to becooperative. ...
Article
In this paper, we demonstrate the application of the specify-explore-refine (SER) paradigm for an IP-centric codesign of embedded systems. We describe the necessary design tasks required to map an abstract executable specification of the system to the architectural implementation model. We also describe the final and intermediate models generated as a result of these design tasks. The executable specification and its refinements should support easy insertion and reuse of IPs. Although several languages are currently used for system design, none of them completely meets the unique requirements of system modelling with support for IP reuse. This paper discusses the requirements and objectives for system languages and describes a C-based language called SpecC, which precisely covers these requirements in an orthogonal manner. Finally, we describe the design environment which is based on our code-sign methodology.
... For instance, Esterel is used to describe specifications of Polis, a tool for hardware/software codesign of embedded systems [7]. In Polis, the specifications are translated into networks of Codesign Finite State Machines (CFSMs) [8]. Note that CFSM networks can be converted to safe 2 PNs, as shown next. ...
... Dans [46], un réseau de Petri hiérarchique (HPN: Hierarchical Petri Net) est utilisé comme modèle de représentation : les transitions représentent les [57,58,18,34,59,60,61]. ...
Article
Full-text available
The current challenges of the development of the complex embedded systems such as the integrated systems of image processing, consist to successfully realizing products reliable, powerful, inexpensive and effective whatever the conditions of use. To take up these challenges passes by a good choice of architecture, methods and tools adapted to the applications concerned and target technologies. For many applications, in particular in telecommunication and multi-media, soft real time realizations are often sufficient, i.e. implementations aiming to obtaining a quality of service adapted to the needs. Instead of being based on the Worse Case Execution Times (WCET) or sequences of test often not very representative to design these systems, our approach targets a self-adapting platform able to be configured during the execution of the application (thus on line). We can quote as examples of applications the case of a fixed camera of remote monitoring which adapts its processing according to the nature of the acquired images or a multimode mobile terminal which changes its standard of transmission if the quality of the communication channel requires it. The reconfigurable components have levels of performances and flexibility which make them very attractive in a growing number of developments. Dynamic reconfiguration (partial or full) makes it possible to re-use the same hardware resources for a succession of processing, and this in similar way to a software realization. We propose an approach allowing to allocate and schedule dynamically the tasks of a data flow application according to an estimate of their execution times in order to respect the time constraints as well as possible. This on line reconfiguration requires research of compromise complexity/effectiveness of the allocation and scheduling in order to optimize the quality of service and to reduce their costs of realization.
Thesis
Full-text available
Les défis actuels du développement des systèmes embarqués complexes tels que les systèmes intégrés de traitement d'image, consistent à réaliser avec succès des produits fiables, performants, efficaces quelles que soient les conditions d'utilisation et peu coûteux. Relever ces défis passe par un bon choix d'architecture, de méthodes et outils adaptés aux applications visées et aux technologies cibles. Pour de nombreuses applications, en particulier en télécommunication et multimédia, des réalisations temps réel souple sont souvent suffisantes, c'est-à-dire des implémentations visant à obtenir une qualité de service adaptée aux besoins. Au lieu de s'appuyer sur des temps d'exécutions pire cas ou des séquences de test souvent peu représentatives pour concevoir ces systèmes, notre approche vise une plate-forme auto-adaptative capable de s'auto-configurer au cours de l'exécution de l'application (donc en ligne). On peut citer comme exemples d'applications le cas d'une caméra fixe de télésurveillance qui adapte ses traitements en fonction de la nature des images acquises ou un terminal mobile multimodal qui change de norme de transmission si la qualité du canal de communication l'exige. Les composants reconfigurables ont des niveaux de performances et une flexibilité qui les rendent très attractifs dans un nombre croissant de développements. La reconfiguration dynamique (partielle ou complète) offre la possibilité de réutiliser les mêmes ressources matérielles pour une succession de traitements, et ce de façon analogue à une réalisation logicielle. Nous proposons une approche permettant d'allouer et d'ordonnancer dynamiquement les tâches d'une application flot de données en fonction d'une estimation de leurs temps d'exécution afin de respecter au mieux les contraintes de temps. Cette reconfiguration en ligne nécessite des recherches de compromis complexité/efficacité de l'allocation et de l'ordonnancement afin d'optimiser la qualité de service et de réduire leurs coûts de réalisation.
Article
The objective of this thesis is to develop a system-level specification and synthesis approach that allows an interactive hardware/software codesign of applications onto multiprocessor architectures composed of ASICs, FPGAs, or software processors. This thesis presents a hardware/software codesign methodology that starts with a specification given in the system-level description language, called SDL, and generates, through an intermediate representation called Solar, hardware and software descriptions in VHDL and C languages respectively. Two main steps are required in order to transform this specification into mixed hardware/software descriptions used for synthesising the hardware and compiling the software parts. Firstly, a system-level partitioning step is needed in order to transform, and split the model into a set of communicating subsystems. Secondly, a communication synthesis step, including protocol selection and interface generation tasks, is needed in order to refine the model into a set of interconnected subsystems. Each of these subsystems is described either in C code or in VHDL. Software parts may be compiled for a standard microprocessor and hardware parts may feed existing high-level synthesis tools in order to programme FPGAs or design ASICs.
Article
We present MILAN, a model based extensible framework that facilitates rapid, multigranular performance evaluation of a large class of embedded systems, by seamlessly integrating different widely used simulators in to a unified environment. MILAN provides a formal paradigm for specification of structural and behavioral aspects of embedded systems, an integrated model-based approach, and a unified software environment for system design and simulation. This paper provides an overview of MILAN, discusses the Model Integrated Computing philosophy, and illustrates the high-level modeling concepts being developed in the MILAN project for embedded systems design and evaluation.
Article
Fundamental principles used by hardware and software engineers to refine the design of a progressive interactive minicomputer are explored, together with the decision-making process and justifications for choices.
Chapter
A reduction is a validity-preserving transformation by which a complex assertion about a complex model may be replaced by a simpler assertion about a simpler model in such a way that the validity of the latter implies the validity of the former. Reductions, in that they are relative to the property to be proved, are significantly more powerful than equivalence and minimization, and are needed to reason about complex coordinating systems. Furthermore, reduction subsumes refinement: a model M refines or implements a model M' provided M' reduces M relative to all assertions about M which are pullbacks of assertions in M' (so anything proved about M' remains true in the refinement M). On account of the close relationship between state machines and automata, it is conceptually convenient to reason about reductions of state machine models in the context of formal assertions based in language (automata) theory. However, as a practical matter, state machine models have been felt to have overwhelming drawbacks. First of all, it has been felt that significant hardware and software systems are simply too complex to capture in a meaningful way, through state machine models. Second, even if they could be captured, the complexity of the resulting model has been thought to be too great to analyze: the complexity of the resulting model has been thought to be too great to analyze: the complexity of the analysis algorithms aside, the size of the resulting state spaces, growing geometrically with the number of system components, has been thought to render analysis intractable in practice. The purpose of this paper is to dispel both of these notions. It is shown how large, complex systems may be modelled accurately in terms of (many) small coordinating component state machines. Second, it is shown how a theory of reduction based upon language homomorphism can render analysis and refinement of such models tractable.
Article
This paper discusses the relationship between machine organization and control program design in high-end commercial computer systems. The criterion is cost/performance, subject to achieving an acceptable performance level. A brief discussion of the environment expected for the design and operation of high-end commercial computer systems is outlined, followed by a discussion of machine organization techniques which are classified and reviewed to permit a qualitative evaluation of the degree to which control program intent is exploited in machine organization. The thesis is developed next, using a hierarchical model which illustrates the contention that architecture has acted as a barrier to communication between the control program and machine organization. Examples of techniques that exploit knowledge of the intent of the control program and comments on the methodology that might be used to investigate such techniques follow. Directions for further research are then proposed.