FIFO sont en acquisition. Il arrivera toutefois
un moment où ces derniers seront remplis (le
processeur local ne relit pas les FIFO durant
l’acquisition). Comme nous l’avons vu juste
avant, la ligne FF s’active alors. Cette ligne,
après inversion par IC6.C, valide la bascule
IC5.A, qui basculera alors au prochain front
montant de l’horloge. Sa sortie passant à 1,
elle bloque alors le verrou autour d’IC7 par la
ligne ACQ DONE (qui sert à prévenir le pro-
cesseur que le cycle d’acquisition est ter-
miné). La ligne ACQ ACT retombant alors,
les signaux d’horloge ne peuvent plus parve-
nir aux FIFO, qui stoppent alors toute acqui-
sition (de toute façon, quand un FIFO est
plein, il refuse d’enregistrer toute nouvelle
donnée). Le processeur local a alors tout le
loisir de relire tranquillement le contenu des
FIFO, qui représente les signaux extérieurs
enregistrés.
Pour cette opération de relecture, le proces-
seur local, que nous étudierons plus loin, ne
dispose que d’un bus 8 bits, alors que la lar-
geur d’acquisition peut aller jusqu’à 36 bits.
Le processeur va simplement sélectionner les
mémoires l’une après l’autre, par les lignes
RAM0RD, RAM1RD, RAM2RD et RAM3RD. Le
9ème bit, utilisé ici comme bit de donnée sup-
plémentaire, est traité par une ligne d’E/S
dédiée du processeur.
Dernier point à étudier : la synchronisation
(le trigger de nos amis anglophones). Nous
avons vu que nous avons prévu deux possi-
bilités : soit le trigger manuel (on force l’ana-
lyseur à démarrer immédiatement), soit le
trigger automatique. Dans ce dernier cas, il
faut appliquer à l’entrée 11 d’IC5 un front
montant (moyennant la validation par le pro-
cesseur de la broche 12).
Ce front montant peut provenir de diverses
sources, sélectionnées par le multiplexeur
IC14. La première source est tout simplement
l’entrée EXT TRIG prise en direct. Cette
entrée permet donc un déclenchement de
l’analyseur sur front montant externe. L’en-
trée EXT TRIG étant reliée à une autre entrée
de IC14 par une porte montée en inverseur,
IC7.D, il est donc possible de déclencher
l’analyseur sur front descendant externe.
Autre possibilité : le déclenchement interne.
Dans ce mode, il faut que l’analyseur détecte
une condition logique, formée par la présence
d’un octet d’une valeur prédéterminée sur un
certain nombre d’entrées. Dans les analy-
seurs logiques haut de gamme, il possible de
sélectionner le nombre d’entrées à contrôler
et leur état respectif. Notre analyseur se vou-
lant simple, le nombre d’entrées est fixé à 8,
sans masquage possible.
Le déclenchement interne est obtenu par
comparaison des 8 premières entrées sur K4
(qui servent aussi d’entrées d’analyse), avec
Full) est alors mise à 0 pour indiquer
la saturation.
On le voit, les FIFO intègrent toute
une logique qui simplifie considéra-
blement leur utilisation. Ces
mémoires sont en général utilisées
comme tampon entre deux proces-
seurs qui doivent s’échanger des
données, à des vitesses différentes,
et sans synchronisation.
Les compteurs rebouclant sur eux-
mêmes chaque que fois que la limite
de mémoire est atteinte (ce qui ne
signifie pas que la mémoire est
pleine –voir ci-dessus), si on sou-
haite s’échanger des blocs de don-
nées de longueur variable, il est
impossible de retrouver par lecture
de ces compteurs le début ou la fin
d’un tel bloc. C’est pour cette raison
que les FIFO ne sont pas architectu-
rés sur 8 bits, mais sur 9 bits.
Bien que ce ne soit pas une obliga-
tion, il est possible d’utiliser ce bit
supplémentaire comme marqueur de
début et de fin de bloc, permettant
au processeur en lecture de « retrou-
ver ses petits ».
Passons aux choses
sérieuses
Après cette présentation des FIFO,
nous allons maintenant nous atta-
quer au schéma de notre analyseur,
qui vous paraîtra du coup plus
simple à comprendre, tout étant qua-
siment intégré dans les FIFO.
Comme vous le voyez sur la figure
4, notre circuit est clairement archi-
tecturé autour de quatre de ces com-
posants. Rien ne vous oblige par
ailleurs à installer tous les FIFO.
Notre analyseur peut fonctionner
avec 1, 2 ,3 ou 4 FIFO installés, sans
aucune difficulté, d’où son caractère
«à géométrie variable ».
Encore plus fort, sachez qu’il existe
d’innombrables modèles de FIFO,
dont la capacité va de 1 Kmot (quel-
qu’un connaît-il sinon le nom d’un «
octet » de 9 bits ?) jusqu’à 16
Kmots (toujours de 9 bits !). Or, tous
ces circuits ont exactement le même
brochage (mais pas le même prix...).
La géométrie variable de notre ana-
lyseur ne se limite donc pas seule-
ment à la largeur (variable de 9 à 36
bits), mais s’applique aussi à la lon-
gueur. Voila une bonne nouvelle pour
nos comptes en banque d’électroni-
ciens !
Enfin, comme nous le verrons dans
la partie consacrée à la réalisation, il
est possible de construire l’analyseur
en version « allégée » à 20 MHz, ou
en version 40 MHz.
Comme l’introduction vous l’a mon-
tré, les compteurs d’écriture sont
intégrés dans les FIFO. Bien qu’ils
n’apparaissent pas sur le schéma, il
faut quand même les alimenter avec
un signal d’horloge (ligne FIFOWR).
Pour obtenir cette horloge d’écriture,
on va utiliser un oscillateur pro-
grammable, construit autour d’un
oscillateur à quartz (IC19) suivi
d’une batterie de diviseurs binaires
(IC8 et IC9).
La sélection de la fréquence d’acqui-
sition se fait grâce à des multi-
plexeurs (IC10 et IC12), commandés
par le processeur local (lignes CLK
Sx). Cas particulier, la dernière
entrée d’IC10 n’est pas reliée aux
diviseurs, mais à une entrée externe
(EXT CLOCK), permettant d’utiliser
une fréquence d’acquisition autre
que celles disponibles sur la carte.
Le signal d’horloge arrive aux FIFO
après validation par IC6.A. À chaque
front descendant de SYSCLK, les
FIFO mémoriseront donc la donnée
présente sur leur bus à cet instant,
donnée qui vient en fait du « monde
extérieur », par l’intermédiaire des
connecteurs d’entrée K1 à K4. Nous
reviendrons plus loin sur les diverses
particularités de ces entrées.
Nous savons que l’horloge était
conditionnée par IC6.A, et plus pré-
cisément par la ligne ACQ ACT sur
le schéma. Pour valider cette ligne, il
faut basculer le verrou (latch) formé
par IC7.A et IC7.B. Ce basculement
ne peut s’obtenir que si la sortie
d’IC5.B passe à 1. Pour y arriver, il y a
deux possibilités : soit forcer cette
sortie par activation de la ligne
START(cette fonctionnalité sera uti-
lisée pour le déclenchement
manuel), soit mettre à 1 la ligne GO
SYNC. Dans ce cas, IC5.B ne bascu-
lera que si la ligne TRIG s’active
(cette fonctionnalité sera utilisée
pour le déclenchement automa-
tique).
La bascule IC5.B peut par ailleurs
être remise à 0 (ce qui n’entraîne pas
la retombée du verrou autour d’IC7)
par le processeur, pour interdire le
redéclenchement.
Tant que le verrou IC7 est armé, le
signal d’horloge est validé, et les
MESURE&TEST
412/2003 Elektor