• Aucun résultat trouvé

Les op´erateurs du langage

3.3 La technologie synchrone dans le co-design

4.1.1 Les op´erateurs du langage

Signalrepose sur six constructions de base qui forment lelangage-noyau. Dans ces construc-tions de base, on distingue les op´erateurs sur signaux, eux-mˆemes class´es en deux cat´egories : les op´erateurs ditsmonochrones (fonctions ou relations, et op´erateur ded´ecalage) qui imposent aux signaux mis en jeu d’ˆetre synchrones ; et les op´erateurs polychrones (op´erateurs de sous-´echantillonnage et dem´elange d´eterministe) qui n’imposent pasa priori aux signaux impliqu´es d’avoir la mˆeme horloge. Les processus d´efinis `a l’aide de ces op´erateurs sont appel´esprocessus ´el´ementaires. Les autres constructions de base portent sur les processus : ce sont lacomposition parall`ele et leconfinement. L’ensemble de ces op´erateurs offre suffisamment d’expressivit´e pour en d´eriver d’autres, utiles pour la structuration et le confort dans les sp´ecifications. Parmi ces ex-tensions, nous mentionnons ci-apr`es des op´erateurs qui permettent de manipuler explicitement le contrˆole.

4.1.1.1 Op´erateurs de base sur les signaux

Nous pr´esentons les constructions de base, portant sur les signaux.

Op´erateurs monochrones

Fonctions2 instantan´ees. Ce sont des extensions canoniques aux suites, des fonc-tions ´el´ementaires classiques (exemples : op´erafonc-tions arithm´etiques ou logiques). Ainsi, le

1. On notera aussixb.

processus y := f(x1,...,xn) o`u les xi et ysont des signaux et f une fonction n-aire extension aux suites d’une fonctionf, est d´efini par :

(∀t∈N) yt=

six1t=...=xnt=⊥

f(x1t, ..., xnt) sinon

Tous les signaux xi et y ont la mˆeme horloge. Pour le processus x := a + b, o`u a, b, etxsont des signaux entiers, une trace possible est la suivante :

a: 5 4 2 0 ...

b: 3 1 9 8 ...

x: 8 5 11 8 ...

D´ecalage ou retard. Cet op´erateur permet de d´ecaler une suite vers des indices inf´erieurs. On peut de cette fa¸con acc´eder aux valeurs port´ees “dans le pass´e” par un signal. Ainsi, dans l’´equation3 y := x $ 1 init c, o`uxetysont des signaux etcune constante d’initialisation (du mˆeme type quey), on a la relation :

(∀t∈N) xt=⊥ yt=⊥

(∃ti ∈N) xti 6=⊥ ⇒ yt0 =c, (∀ti >0)yti+1=xti

o`ut0 =inf{t|xt6=⊥}(le premier instant logique o`uxest pr´esent) etti+1=inf{t|t > ti ∧xt 6=⊥} (le suivant imm´ediat d’un instant logique au sein de l’ensemble des ins-tants o`u x est pr´esent). Ici aussi les signaux x et y sont synchrones. Soit le processus

pre_x := x $ 1 init 3.14, o`u xet pre_x sont des signaux r´eels. Une trace possible est la suivante (on introduit ici une horloge plus rapide que celle dex ety, d´enot´ee par

h) :

h: tick tick tick tick tick tick tick tick tick tick ...

x: 1.7 2.5 6.5 2.4 1.3 5.7 ...

pre_x: 3.14 1.7 2.5 6.5 2.4 1.3 ...

L’op´erateur de retard existe aussi sous uneforme g´en´eralis´ee. Cette version de l’op´erateur permet d’acc´eder `a la valeur qu’avait un signalkinstants auparavant. Elle est exprim´ee `

a l’aide de l’´equation y := x $ k init tab_init, o`u tab_init est un vecteur born´e contenant les constantes d’initialisation, et kest un signal entier portant une valeur au moins ´egale `a 0 et inf´erieure `a la longueur de tab_init.

Op´erateurs polychrones

Sous-´echantillonnage ou filtrage. Il permet d’extraire des ´el´ements d’une suite, sous une certaine condition. Dans l’´equation y := x when b, o`uxetysont deux signaux du mˆeme type, et best un signal bool´een, yvaut xlorsquebest pr´esent et porte la valeur

vrai; sinon yest absent (i.e. il vaut ⊥). L’horloge dey est d´efinie par l’intersection de celle dex et de l’ensemble des instants o`u bporte la valeurvrai.

Dans la trace suivante,xet ysont de type entier :

x: ... 5 4 8 7 3 ...

b: ... vrai faux faux vrai vrai ...

y: ... 5 7 ...

L’expression b when bpeut ˆetre abr´eg´ee en when b.

M´elange d´eterministe. Cet op´erateur permet d’obtenir l’entrelacement fonctionnel de deux suites. Dans le processus y:= u default v, le signal yprend la valeur port´ee par le signal u lorsque celui-ci est pr´esent, autrement y vaut v (en particulier, il est absent lorsque u et vsont absents). L’horloge de y est d´efinie par l’union des horloges de uetv.

Une trace associ´ee `a ce processus est donn´ee ci-apr`es (tous les signaux sont de type entier).

u: ... 5 4 8 3 ...

v: ... 51 17 32 20 13 ...

y: ... 5 17 4 8 20 3 ...

4.1.1.2 Op´erateurs de base sur processus

Composition parall`ele. La composition de deux processus P et Q, not´ee P | Q, est l’union des syst`emes d’´equations d´efinis par ces processus et donc leur s´emantique est la conjonction de leurs comportements mutuels. Les deux processus communiquent via leurs signaux communs ; les signaux d’entr´ee dePpeuvent ˆetre des signaux de sortie deQet vice-versa. Aucun signal ne peut ˆetre d´efini au mˆeme instant dans les deux processus (Signal respecte le principe d’assignation unique). On montre facilement les propri´et´es alg´ebriques suivantes :

– la commutativit´e :P | Q = Q | P

– l’associativit´e :P | (Q | R) = (P | Q) | R

– l’idempotence :P | P = P

Confinement ou restriction.C’est l’op´erateur qui permet de restreindre la port´ee d’un signal `

a un processus. L’expression4 P where xrend le signalxinaccessible `a l’ext´erieur du processus

P. On peut alors montrer l’existence d’´el´ements absorbants (les processus vides sur un ensemble non vide de variables).

4.1.1.3 Op´erateurs d´eriv´es portant sur le contrˆole pur

Nous indiquons ici les op´erateurs qui sont utilis´es par la suite pour exprimer des propri´et´es li´ees au contrˆole.

Extraction d’horloge: dans l’´equationh := ^x, le signal de type ´ev´enement purhrepr´esente l’horloge dex. Cette ´equation est d´efinie commeh := (x = x).

Synchronisation explicite : l’´equation x1 ^= x2 sp´ecifie que les signaux x1, x2 sont syn-chrones (l’op´erateur est trivialement ´etendu `a plusieurs signaux sous la formex1 ^= ... ^= xn). Cette ´equation se d´efinit comme (| h’ := (^x1 = ^x2) |) where h’.

Intersections, unions et diff´erences d’horloges: l’´equationh’ := x1 ^* x2d´efinit le signal

h’ comme ´etant l’intersection des horloges des signaux x1 et x2. La d´efinition de cette ´equation est h’ := ^x1 when (^x2). L’union et la diff´erence ensembliste s’expriment respectivement au moyen des op´erateurs^+ et^−.

process MODELE =

{ param`etres }

( ? entr´ees;

! sorties; )

spec (| propri´et´es de l’interface |)

(| sp´ecification du comportement interne du processus |)

where

d´eclarations locales % signaux et sous-mod`eles %;

end;

Figure4.1 – Mod`ele de processus Signal.