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.