ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration =...
-
Upload
gisele-guyard -
Category
Documents
-
view
106 -
download
2
Transcript of ELE6306 : Test de systèmes électroniques Projet de cours Chaîne de scan unique: Reconfiguration =...
ELE6306 : Test de systèmes électroniques
Projet de cours
Chaîne de scan unique:
Reconfiguration = Optimisation
Louis-Martin Côté
Professeur : A. Khouas
Département de génie électrique
École Polytechnique de Montréal
2
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Plan
Scan-Path et techniques d’application des testsPolitiques de décalageProblème fondamental de reconfigurationCahier des charges du logicielStructures de donnéesFormat de fichierArchitecture logicielleAlgorithmieDémonstrationLimitations
3
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Scan-Path
Le scan-path est une méthode de DFT
Chaîne unique Tous les flip-flops sont reliés Technique d’application des tests
Mode ensemble Ne prends pas avantage de l’organisation du circuit.
Mode chevauché Diminue le temps de décalage en divisant le test en
plusieurs sessions de test, selon l’organisation du circuit. Chaque session vise à compléter le test d’un noyau du circuit.
4
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Politiques de décalage pour mode chevauché
Séparer le circuit en noyaux et en registres de
scan.
Pour chaque session de test, la politique de
décalage dicte le nombre de coups d’horloges
qu’il faut faire en mode test avant d’activer
l’horloge normale. C’est le cycle de décalage (chain cycle)
Il existe deux politiques de décalage: Flush shift Minimum shift
5
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Politiques de décalages (suite)
Flush shiftLe cycle de décalage de la chaîne correspond au nombre total de flip-flops dans la chaîne.
Minimum shiftLe cycle de décalage de la chaîne est la plus grande des deux valeurs suivantes:
Drive cycleReceive cycle
Cycle de décalageFlush = 32 c.c.Min = 28 c.c.
6
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Reconfiguration: Problème fondamental
On veut insérer des
multiplexeurs dans la
chaîne de scan pour créer
des sous-chaînes avec des
cycles de décalage plus
petits. Le temps de test
total est:
Solution optimaleCombien de multiplexeurs?Où les insérer?
Il existe différentes
solutions, selon de mode
de décalage utilisé.1
11 )1)(( CCCCWWTT
n
iiii
7
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Cahier des charges du logiciel
Charger une description de circuit au moyen
d’un fichier de description.
Pouvoir spécifier le nombre de multiplexeurs à
insérer.
Pouvoir choisir le mode de décalage.
Affichage des résultats dans l’interface
graphique.
Possibilité de sauvegarder une configuration.
Windows, langage C++
8
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Structures de données
Ensemble de noyaux: vector<unsigned long>
Un noyau est complètement défini par son nombre de vecteurs de test
Registre de scan: structure (classe) contenant les 5 valeurs qui le définissent
Index, Length, DriverWeight, ReceiverWeight, Weight.
Multiplexeur: structure (classe) contenant 2 valeurs:
Représente les deux entrées du multiplexeur.
Chaîne de scan: vector<CScanRegisterDescription>
Le vecteur STL permet le triage.
+CMuxBypassSegment()+CMuxBypassSegment()
+ulFirst : unsigned long+ulLast : unsigned long
CMuxBypassSegment
+CScanRegisterDescription()
+ulIndex : unsigned long+ulLength : unsigned long+ulDriverWeight : unsigned long+ulReceiverWeight : unsigned long+ulWeight : unsigned long
CScanRegisterDescription
9
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Format de fichier
# Description of a simple circuit
# Author: lmcote
# Date: 2003.11.22
NUMBER_OF_KERNELS = 3
NUMBER_OF_SCAN_REGISTERS = 6
# Vive le 9 décembre !!!
KERNEL_TEST_LENGTHS = 20, 100, 500
SR_LENGTHS = 4, 4, 4, 8, 8, 4
SR_DRIVER_FOR_KERNEL = 3, 3, 2, 2, 1, 0
SR_RECEIVER_FOR_KERNEL = 0, 3, 3, 0, 2, 1
10
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Architecture logicielle
11
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Algorithmie (flush shift)
1. Ordonner les registres en
ordre décroissant de poids
(weight).
2. Chaque transition de poids est
un point d’insertion potentiel.
3. Trouver les combinaisons (m
dans r) qui diminue le plus le
temps de test.
4. Choisir la meilleure
combinaison et insérer les
multiplexeurs aux points
d’insertion trouvés pour cette
combinaison.
R14
500
R24
500
R48
100
R58
100
R64
20
R34
500
R14
500
R24
500
R48
100
R58
100
R64
20
R34
500
Avec 2 multiplexeurs, on obtient la
solution optimale:
TT = (32 + 1) * 20 + (28 + 1) * 80 +
(12 + 1) * 400 + 32
= 8212 c.c.
12
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Algorithmie (minimum shift)
Le principe est similaire, mais beaucoup plus complexe parce qu’on tient compte du rôle que jouent chaque registre!
1. Ordonner les registres d’une certaine manière.
2. Pour chaque session de test, trouver les segments de la chaîne de scan qui peuvent être sautés.
3. Pour chaque combinaison de segment, calculer les économies de temps de test.
4. Retenir la meilleure combinaison.
5. Perturber l’ordre des registres et retourner à l’étape 2 !
Avec 2 multiplexeurs, on obtient
éventuellement la solution optimale:
TT = (28 + 1) * 20 + (20 + 1) * 80 +
(8 + 1) * 400 + 28
= 5888 c.c.
Ce problème est NP-complet !
Le logiciel doit perturber l’ordre
des registres 2 fois avant
d’arriver à cette solution.
13
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Démonstration du logiciel
Charger un fichier de
description de circuit
(.scanpath)
Modifier les paramètres
de reconfiguration.
Lancer la reconfiguration
Créer un rapport
14
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Limitations du logiciel
Le logiciel trouve une solution optimale; pas
toutes les solutions optimales!
L’analyse combinatoire (surtout avec le
minimum shift) peut prendre beaucoup de
temps pour des circuits complexes.
Première version fonctionnelle (alpha-0) !
15
Projet, ELE6306 - 11 avr. 2023 École Polytechnique de Montréal
Questions