• Aucun résultat trouvé

G´ en´ eration des vecteurs de test pour les routeurs du r´ eseau

3.3 Conception, synth` ese, optimisation et impl´ ementation

4.1.2 G´ en´ eration des vecteurs de test pour les routeurs du r´ eseau

Comme les liens du r´eseau, les routeurs du r´eseau sont ´egalement impl´ement´es en logique asynchrone QDI avec le protocole 4-phases. L’architecture du routeur ANOC a ´et´e pr´esent´ee dans le chapitre1, section1.3.4. Selon cette pr´esentation, le routeur se compose de 5 unit´es d’entr´ees et de 5 unit´es de sortie. En analysant la structure du routeur, on peut voir que la partie contrˆole du routeur occupe environ 10% des portes logiques de la totalit´e du routeur et que le nombre des portes logiques d’une unit´e d’entr´ee est `a peu pr`es le mˆeme que celui d’une unit´e de sortie. En dehors de la partie contrˆole, chaque unit´e d’entr´ee et de sortie peut ˆetre dissoci´ee en trois sous-parties ´equivalentes en nombre de portes logiques, cf. figure 4.2.

Dans cette figure, on voit que l’unit´e d’entr´ee comprend un bloc IN qui re¸coit des donn´ees sur l’entr´ee et les d´emultiplexe vers les deux canaux virtuels dans les blocs VC0 et VC1. De mˆeme, une unit´e de sortie comprend deux blocs VC0 et VC1 utilis´es pour deux canaux virtuels et un bloc OUT qui permet de multiplexer les donn´ees `a partir des canaux virtuels et de les transporter `a la sortie.

Fig. 4.2 : Analyse de la structure d’un routeur ANOC.

Le test du routeur peut ˆetre r´ealis´e de la mani`ere suivante : les donn´ees de test sont ins´er´ees `a un des ports d’entr´ee et sont observ´ees aux ports de sortie. Pour amener les donn´ees de test au routeur, ces donn´ees de test doivent respecter le format des paquets de donn´ees, d´ecompos´es en plusieurs flits, comme pr´esent´e dans la section1.3.2. Les deux bits BoP et EoP doivent ˆetre remplis afin de pouvoir indiquer le d´ebut et la fin d’un paquet de test. Les deux derniers bits (i.e. le dernier digit « 1-of-4 ») du flit d’en-tˆete d’un paquet doivent contenir la direction de routage du paquet. Ceci permet de router les paquets de test entrants sur une unit´e d’entr´ee vers les unit´es de sortie des 4 autres directions. L’injection des paquets de donn´ees dans les diff´erentes unit´es d’entr´ee est r´ealis´ee par le wrapper en 5 phases identiques, cf. section 4.2.2. Au vu de ces signaux de contrˆole n´ecessaires `a la couverture compl`ete du routeur, le format d’un paquet de test est donc le suivant, cf. figure 4.3.

De plus, afin d’ˆetre rout´e dans diff´erents canaux virtuels (pour tester les blocs VC0, VC1) de chaque unit´e d’entr´ee/sortie, les paquets de test doivent ˆetre ac- compagn´es des signaux qui indiquent les canaux virtuels sur le canal « send ». La structure d’un port d’entr´ee/sortie du routeur est identique `a celle d’un lien du r´eseau, comme pr´esent´e dans la sous-section pr´ec´edente, et comprend 17 canaux asynchrones MR[4] pour les donn´ees, un canal DR et deux canaux SR pour les signaux « send–accept ». Nous pouvons donc utiliser la mˆeme mani`ere de g´en´erer des vecteurs de test que pour les liens du r´eseau. Tous les digits « 1-of-4 » d’un flit

Fig. 4.3 : Format d’un paquet de test.

de test qui ne participent pas au contrˆole doivent ˆetre forc´es par toutes les valeurs possibles (« 0 », « 1 », « 2 », et « 3 »), soit 15 digits, cf. tableau 4.2.

Tab. 4.2 : Vecteurs de test pour un triplet « entr´ee/sortie/canal virtuel » du routeur

Data Send

BoP/EoP 15 digits « 1-of-4 » Direction Canal virtuel 2 « 0.0.0. . . 0 » « dir. » « vc. » 0 « 0.0.0. . . 0 » « 0 » « vc. » 0 « 1.1.1. . . 1 » « 1 » « vc. » 0 « 2.2.2. . . 2 » « 2 » « vc. » 1 « 3.3.3. . . 3 » « 3 » « vc. »

On voit que ces vecteurs de test permettent de tester la partie « data » des diff´erents blocs (IN, VCvc) de l’unit´e d’entr´ee d´efinie par le wrapper et des diff´erents blocs (VCvc, OUT) de l’unit´e de sortie d´efinie par la direction de routage (dir.). La couverture des cinq unit´es d’entr´ee ne correspond pas `a des bits de contrˆole dans le paquet, mais `a cinq phases de fonctionnement du wrapper pour injecter les mˆemes donn´ees de test aux diff´erentes unit´es d’entr´ee. Pour tester toutes les unit´es de sortie et tous les sous-blocs VC0 et VC1, les digits « dir. » et « vc. » doivent ˆetre forc´es `a toutes les valeurs possibles.

Cependant, pour couvrir la partie contrˆole de chaque unit´e d’entr´ee/sortie, toutes les combinaisons possibles des digits de contrˆole doivent ˆetre consid´er´ees, notamment le digit BoP/EoP, et tous les digits dans le champ path-to-target. Ils doivent aussi ˆ

etre forc´es `a toutes les valeurs possibles. Pour faire cela, nous avons d´efini encore 3 paquets d’un seul flit, d´ecrits dans le tableau 4.3 suivant.

Au final, pour tester tous les blocs d’un triplet unit´e d’entr´ee, unit´e de sortie, canal virtuel, nous avons besoin de 8 vecteurs de test. Comme un routeur a 5 entr´ees,

Tab. 4.3 : Vecteurs de test pour un triplet « entr´ee/sortie/canal virtuel » du routeur

Data Send

BoP/EoP 15 digits « 1-of-4 » Direction Canal virtuel 3 « 1.1.1. . . 1 » « dir. » « vc. » 3 « 2.2.2. . . 2 » « dir. » « vc. » 3 « 3.3.3. . . 3 » « dir. » « vc. »

que chaque entr´ee est connect´ee `a 4 sorties, et qu’il y a deux canaux virtuels le nombre total de vecteurs de test n´ecessaires pour tester un routeur complet est donc 8 ∗ 5 ∗ 4 ∗ 2 = 320 vecteurs. Ces vecteurs de test sont ins´er´es dans le routeur sous test en utilisant le wrapper de test pr´esent´e dans le chapitre pr´ec´edent.

Pour ins´erer un vecteur de test puis r´ecup´erer le r´esultat, dans le cas g´en´eral nous avons besoin de deux configurations de test (cf. section 3.3.7.5), le nombre de configurations de test n´ecessaire au test complet d’un routeur est donc 640 TCFs. Ces configurations de test sont calcul´ees de mani`ere automatique par un programme ad hoc.

La couverture de faute de ces vecteurs de test pour les fautes de collage sera pr´esent´ee dans la section4.2.5. Dans la section suivante, nous allons pr´esenter l’uti- lisation de l’architecture d´evelopp´ee pour tester tous les ´el´ements du r´eseau ANOC.