19
ELE 6306 - Methodologie de te st pour un FPGA 1 Maya Nahas Présentation de projet ELE 6306 – Tests de systèmes électroniques Professeur Khouas École Polytechnique de Montréal 13 Décembre, 2005 Méthodologies de test pour un FPGA

Méthodologies de test pour un FPGA

Embed Size (px)

DESCRIPTION

Méthodologies de test pour un FPGA. Maya Nahas Présentation de projet ELE 6306 – Tests de systèmes électroniques Professeur Khouas École Polytechnique de Montréal 13 Décembre, 2005. Plan. Introduction au FPGA Structure d’un FPGA Design d’un FPGA Philosophie générale pour tester un FPGA - PowerPoint PPT Presentation

Citation preview

Page 1: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

1

Maya Nahas

Présentation de projetELE 6306 – Tests de systèmes électroniques

Professeur KhouasÉcole Polytechnique de Montréal

13 Décembre, 2005

Méthodologies de test pour un FPGA

Page 2: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

2

Plan

Introduction au FPGA Structure d’un FPGA Design d’un FPGA

Philosophie générale pour tester un FPGA Test sur ASIC vs. test sur FPGA Méthode de test d’un FPGA

Méthode ASIC Méthode populaire Méthodes nouvelles

Applications des méthodes de test Conclusion Références

Page 3: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

3

Introduction au FPGA

Possède des éléments logiques et des interconnections programmables

Programmable par le client et dans le champ Reconfiguration complète ou partielle (RTR) Différents types de technologie et différentes architectures

existent pour les FPGAs FPGA basé sur la technologie SRAM est la plus récente et

populaire

Page 4: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

4

Structure d’un FPGA (1)

Matrices d’interconnection pour connecter tous les blocs de logique et mémoire ensemble

Bloc logique configurables (CLBs): “lookup table” (composé de cellules SRAM) registres (flip-flop) composants pour l’arithméthique rapide

Blocs pour entrées et sorties primaires (situées aux peripheries du FPGA et sont associées avec des pins sur un FPGA)

BRAMs – utilisés pour sauvegarder de l’information (soit instruction ou data)

Page 5: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

5

Structure d’un FPGA (2)

Les LUTs à 4 entrées sont couramment les plus populaires

Ces mêmes LUTs peuvent synthétiser n’importe quelle fonction booléenne à 4 variables

Les blocs logiques offrent des sorties combinationelles ou séquentielles en utilisant un MUX

Page 6: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

6

Design d’un FPGA [1]

Page 7: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

7

Étapes de design pour un FPGA Design conçu en faisant un schéma ou en utilisant un des langages

de description (produit un netlist) Implémentation de notre design est fait a partir d’un « bitstream »

qui est utilisé pour configurer le FPGA On fait un mapping de notre design aux ressources présentes On programme les ressources trouvées dans la première étape On programme les interconnections entre les ressources pour former

notre circuit Le mapping de notre circuit aux ressources doit se faire avant de

produire notre bitstream On peut contrôler quels ressources sont utiliser pour faire un partie

spécifique d’un circuit, mais c’est habituellement vraiment long de faire cela, alors on laisse les outils faire cette partie, donc, c’est aléatoire.

On peut aussi utiliser une langages de programmation pour contrôler ce layout de notre circuit, en faisant cela, on se permet de contrôler les valeurs assigner aux ressources plus facilement.

Page 8: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

8

Philosophie générale pour tester un FPGA [2]

Générale, uniforme et indépendante de l’application On ne peut pas construire un test suite (génération et

application) pour toutes sortes de circuits possibles Scalaire et indépendante de la taille du FPGA

On peut réduire le temps de configuration du FPGA et d’application des tests si notre méthode est indépendante de la taille du circuit programmé sur le FPGA

Réutilisable et peut être automatisée On change d’architecture chaque 6-12 mois Cela est plus prononcé en utilisant les FPGAs

Produits des résultats mesurables et quantifiables Non seulement pour localiser les fautes mais pour essayer de

les contourner aussi!

Page 9: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

9

Test Gratuits dans un FPGA Contrôlable et observable sans avoir à ajouter des

scan paths ou test points, puisque les nœuds font parties des ressources déjà présentes Une entrée ou sortie de LUT peut être controllée/observée

de l’extérieur en la routant à une broche (pin) particulière Un FPGA doit avoir la capacité de lire ce qui a été

programmer dans les éléments, pour confirmer que la programmation est correcte (readback) Pour cette raison, ceci nous provisionne la capacité de

faire un scan out sans avoir à ajouter des éléments, puisque cette fonctionnalité est déjà provisionner et est nécessaire dans un FPGA

Page 10: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

10

Méthodes de test pour FPGA (1) Méthodes appliquées aujourd’hui pour ASIC peuvent être

utilisées sur un FPGA BIST – notre design doit inclure les éléments nécessaires (LFSR

– BILBO-MISR) Déterministe – prend beaucoup de mémoires pour garder les

vecteurs et c’est difficile de générer un ATPG dans un FPGA JTAG – prends beaucoup de ressources qui peuvent être utiliser

par le circuit même Chaîne de scan – test les interconnections mais pas les

mémoires

Page 11: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

11

Méthodes de test pour FPGA (2) [3] Méthodes populaires pour tester un FPGA est de tester le FPGA sans

que ça soit programmé Mode « offline » Tester toutes les ressources dans le FPGA et donc lorsque c’est

programmé, on est certain que les ressources n’ont pas de fautes L’avantage de cette méthode est que la partie de tester le FPGA est

séparée du fonctionnement du circuit, donc, c’est générique, et scalaire De plus, les ressources utilisées pour tester, peuvent par la suite d’un

test, être re-utilisées comme ressources pour le circuit. Ceci prends avantage d’une propriété d’un FPGA – reconfiguration. (baisse

ou même élimine l’overhead inclu en ASIC test) Mode « offline » prends beaucoup de temps et donc n’est pas bon pour

des applications où un circuit doit produire des résultats rapidement dans un temps limité Mode « online » sera mieux dans ce cas

Page 12: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

12

Méthodes de test pour FPGA (3) Méthodes nouvelles pour tester un FPGA

décomposent les ressources d’un FPGA en trois parties majeures et essayent de les tester individuellement, puis ensemble Test de l’interconnections [4]

Généralement, l’interconnection et les registres dans les blocs logiques, sont tester en chainant un pseudo-scan path (shift register chain)

Aussi, la fonctionnalité readback d’un FPGA nous donne le pouvoir de non seulement trouver les fautes à l’extérieur du FPGA, mais aussi à localiser la faute à l’intérieur du FPGA!

Deux types de fautes existent dans l’interconnection Bridging faults, comme les wired-AND et wired-OR Resisitive open faults, comme notre modèle de faute à circuit ouvert

Page 13: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

13

Méthodes de test pour FPGA (4)

Trois configurations de test pour trouver toutes types de fautes d’interconnection

Page 14: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

14

Méthodes de test pour FPGA (5)

Test des blocs logiques et mémoires [5] Généralement, les LUTs et leurs circuiteries associées,

sont tester en utilisant une méthode de BIST semblable à celle d’un ASIC, mais modifiée pour un FPGA

Puisque les registres sont déjà testés par la méthode de shift register chain, on considère ici les LUTs et les multiplexeurs présents dans les blocs logiques

Les blocs mémoires présents dans les blocs logiques sont testés en utilisant cette méthode (BIST)

Par contre, les blocs mémoires (BRAMs) qui sont composés de denses architectures à RAMs sont testés par les mêmes méthodes utilisées pour tester les chips RAM, et ne font pas parties de cette revue

Page 15: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

15

Méthodes de test pour FPGA (6)

Un gabarit d’un BIST dans un FPGA

Page 16: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

16

Méthodes de test pour FPGA (7)

Exemple d’insertions de fautes stuck-at dans un bloc logique

Page 17: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

17

Applications de Méthodes de Test Il existe des applications qui exigent certaines

fonctionnalités additionnelles Par exemple: les circuit électroniques dans les applications

spatiales contenant un FPGA Ne peuvent communiquer avec un satellite que pendant

certaines minutes par journée (quand ils se croisent les chemins) Solution: utiliser un on-line test pour continuellement tester les

ressources même si le satellite n’est pas en vue Ne possèdent pas beaucoup de ressources de

communication pour envoyer les résultats des tests ou pour accepter des longues bitstreams Solution: utiliser une compression pour les deux!

Ne peuvent pas être remplacés très périodiquement Solution: utiliser la fonctionnalité reconfigurable d’un FPGA pour

router les signaux autours des fautes!

Page 18: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

18

Conclusions On a présenté aujourd’hui les différences de méthodes de test

entre celles conçues pour un ASIC et pour un FPGA La plupart des méthodes de tester un FPGA visent à tester les

ressources séparément, et puis ensemble On ne peut pas aveuglement utiliser les méthodes de test d’un

ASIC sur un FPGA, puisque le dernier est très différent en architecture et fonctionnement

Il existe d’autres méthodes nouvelles pour tester les interconnections, ou les blocs logiques d’un FPGA, mais ils ne sont pas très populaires Les auteurs en [6] ont même devisé une nouvelle méthode pour

passer la bitstream de configuration dans le FPGA tout en testant les ressources du dernier

Page 19: Méthodologies de test pour un FPGA

ELE 6306 - Methodologie de test pour un FPGA

19

Références[1] Ashenden, Peter, ”VHDL Quick Start”, The University of Adelaide[2] Toutounchi, S.; Lai, A. ”FPGA test and coverage”, Test Conference, 2002.

Proceedings. International, 7-10 Oct. 2002 Page(s):599 – 607[3] Stroud, C.; Konala, S.; Ping Chen; Abramovici, M., ”Built-in self-test of logic

blocks in FPGAs (Finally, a free lunch: BIST without overhead!)”, VLSI Test Symposium, 1996., Proceedings of 14th 28 April-1 May 1996 Page(s):387 – 392

[4] Renovell, M.; Portal, J.M.; Figueras, J.; Zorian, Y., ”Testing the interconnect of RAM-based FPGAs”, Design & Test of Computers, IEEE Volume 15, Issue 1, Jan.-March 1998 Page(s):45 – 50

[5] Renovell, M., “SRAM-based FPGAs: a structural test approach”, Integrated Circuit Design, 1998. Proceedings. XI Brazilian Symposium on 30 Sept.-3 Oct. 1998 Page(s):67 - 72

[6] Doumar, A.; Ito, H., “Testing the logic cells and interconnect resources for FPGAsTest” ,Symposium, 1999. (ATS '99) Proceedings. Eighth Asian16-18 Nov. 1999 Page(s):369 - 374