Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLucien Baron Modifié depuis plus de 9 années
1
ELE6306 : Test de systèmes électroniques Projet de cours Core Test Language (CTL) Maurice Kouam; Guillaume Wild Professeur : A. Khouas Département de génie électrique École Polytechnique de Montréal
2
Projet, ELE6306 - avril 15École Polytechnique de Montréal 1 Plan de la présentation I. Introduction : Les SoC et les difficultés de test II. Vers un SoC standardisé IEEE-1500 Core nu (1500-Ready core) Core avec Wrapper (1500-compliant core) III. Exemple de code CTL (Core Test Language) IV. Conclusion
3
Projet, ELE6306 - avril 15École Polytechnique de Montréal 2 I. Introduction : Les SoC et les difficultés de test Exemple de SoC comportant plusieurs IP Intègrent de plus en plus de modules Chaque module a ses propres procédures de test Difficultés pour tester le système au complet Nécessité d’un standard pour faciliter le test des modules à l’intérieur du système
4
Projet, ELE6306 - avril 15École Polytechnique de Montréal 3 Architecture de test d’un module IP Langage de description des procédures de test (Core Test Language) Les vendeurs de IP fournissent les procédures de test décrites en langage CTL Deux scénarios possibles pour le fournisseur de cores : Core nu / Core avec wrapper II. Vers un SoC standardisé IEEE1500
5
Projet, ELE6306 - avril 15École Polytechnique de Montréal 4 Description Livré avec un code CTL Code CTL contient la description du test Avantage: le concepteur du SoC peut utiliser un wrapper standard adapté à son système Scénario 1: Core nu (1500 Ready-Core)
6
Projet, ELE6306 - avril 15École Polytechnique de Montréal 5 Description Livré avec un code CTL Code CTL contient la description du test et les modes de fonctionnement Avantage Minimise l’impact du wrapper sur les performances du core Scénario 2: Core avec wrapper (1500 Compliant-Core)
7
Projet, ELE6306 - avril 15École Polytechnique de Montréal 6 // Entete CTL 0.1; Header { Title "Code CTL pour core 1500-Compliant"; Date "Jeudi 4 decembre 2003"; } //definition originale des signaux du Core CoreSignals bare_core_signals { d[0..4] In { CoreExternal { ConnectTo UDL;}} q[0..2] Out { CoreExternal { ConnectTo UDL;}} si0 In { ScanIn 6; CoreExternal { ConnectTo TAM;}} si1 In { ScanIn 8; CoreExternal { ConnectTo TAM;}} so0 Out { ScanOut 6; CoreExternal { ConnectTo TAM;}} so1 Out { ScanOut 8; CoreExternal { ConnectTo TAM;}} sc In { CoreExternal { ConnectTo PIN;}} clk In { CoreExternal { ConnectTo PIN;}} } //Nouveaux signaux pour wrapped-Core Signals{ si In { CoreExternal { ConnectTo TAM;}} sc In { CoreExternal { ConnectTo PIN;}} clk In { CoreInternal { DriveAccuracy Critical;} CoreExternal { ConnectTo PIN; DataType Clock;}} d[0..4] In { CoreInternal { ConnectIn Scan m1m4`0..4`; Wrapper IEEE-1500;} CoreExternal { ConnectTo UDL;}} pi[0..2] In { CoreExternal { ConnectTo TAM;}} po[0..2] Out { CoreExternal { ConnectTo TAM;}} q[0..2] Out { CoreInternal { ConnectOut Scan m1m4'5..7; Wrapper IEEE-1500; } CoreExternal { ConnectTo UDL; }} so Out { CoreExternal { connectTo TAM; }} wc[0..5] In { CoreInternal { DriveAccuracy NonCritical; } CoreExternal { ConnectTo PIN; DataType TestControl; }} } III. Exemple d’un code CTL (1) CoreSignals : signaux E/S du core nu Signals : signaux E/S du wrapper
8
Projet, ELE6306 - avril 15École Polytechnique de Montréal 7 //Definition des regroupements de signaux SignalGroups{ si_m123 = 'si' { ScanIn 22; } // longueur de (d+schain0+schain1+q) si_wir = 'si' { ScanIn 6; } so_m123 = 'so' { ScanOut 22; } wc = 'wc[0..5]'; ins = 'pi[0..2] + d[0..4] + sc + si + wc[0..5]';//all inputs outs = 'po[0..2] + q[0..2] + so‘;//all outputs CLK = 'clk'; } // diagrammes temporels Timing normal { WaveformTable mon_timing{ Period '100ns'; Waveforms { ins { 0 { '0ns' D;}} ins { 1 { '0ns' U;}} ins { Z { '0ns' Z;}} outs { X { '0ns' X;}} outs { H { '0ns' X;'40ns' H;}} outs { L { '0ns' X;'40ns' L;}} CLK { 1{'0ns' D;'60ns' U;'65ns' D;}} CLK { 0{'0ns' D;}} } III. Exemple d’un code CTL (2) SignalGroups : regroupements de signaux Timing : déclaration des waveforms
9
Projet, ELE6306 - avril 15École Polytechnique de Montréal 8 // Definition des macros MacroDefs{ setup_normal{ Purpose Instruction; W mon_timing; C{ si=0; so=X, wc=000000;} // valeurs par defaut V{ wc[0..4]=10000;} //mettre WIR en mode reception Shift{ V{ si_wir=111111; wc[5]=1;}}//code du mode normal F{ wc=010001; }// update du WIR } setup_serial_intest{ Purpose Instruction; W mon_timing; C{ si=0; so=X, wc=000000;} // valeurs par defaut V{ wc[0..4]=10000;} // mettre WIR en mode reception Shift{ V{ si_wir=111000; wc[5]=1;}} //code du mode de test F{ wc=010001; }// update du WIR } do_serial_intest{ Purpose ControlObserve; W mon_timing; C{ si_m123=0; so_m123=X; CLK=1; sc=1; } Shift { V{ si_m123='d,si1,si0'; so_m123='so1, so0,q'; }} V{ clk=1; sc=0; } } III. Exemple d’un code CTL (3) Macrodefs : définition des macros
10
Projet, ELE6306 - avril 15École Polytechnique de Montréal 9 // Definition des différent mode de test Environment wrapped_core{ //Mode de fonctionnement normal CTL mode_normal{ TestMode Normal PatternInformation{ PatternExec run_all{ Purpose EstablishMode; Timing mon_timing; PatternBurst seq_normal; } PatternBurst seq_normal{ PatternSet{pat_normal;} }}} //Mode de test interne en mode sériel CTL mode_serial_intest{ TestMode SerialInternalTest; PatternInformation{ PatternExec run_all{ Purpose Production; Timing mon_timing; PatternBurst seq_serial_intest; } PatternBurst seq_serial_intest{ PatternSet{pat1;pat2;pat3;} }}} } III. Exemple d’un code CTL (4) Environment : définition de l’environnement CTL, des différents modes de fonctionnement du wrapper
11
Projet, ELE6306 - avril 15École Polytechnique de Montréal 10 Pattern pat_normal{ Purpose EstablishMode; M setup_normal{}; } Pattern pat1{ Purpose Scan; PatternCharacteristics { BreakPoint No; ConditionalStatements No; CoreUsageReady No; NonCyclized No; DeltaChangeVectorData Yes; GoTo No; IddqTestPoints No; Macro Yes; MultiBitData No; NumberPatternUnits 2; PatternVariables No; ProcedureCalls WithParameters; Shift Yes; STILPatterns Yes; } //fin PatternCharacteristics Fault { Type StuckAt; FaultCount 4; FaultsDetected 4; FaultCoverage 100; } //fin Fault M setup_serial_intest{}; M do_intest{d=00110 ;si0=1 ; si1=0 ;so0=0 ;so1=0 ; q=110} M do_intest{d=11100 ;si0=0 ; si1=1 ;so0=1 ;so1=0 ; q=000} } //fin Pattern III. Exemple d’un code CTL (5) Pattern : définition des séquences de vecteurs de test
12
Projet, ELE6306 - avril 15École Polytechnique de Montréal 11 IV. Conclusion Le CTL facilite le DFT dans la conception d’un SoC Il permet la transmission des informations relatives au test d’IP au concepteur de SoC Le CTL fait partie du standard IEEEP1500 : Standard for Embedded Core Test Ce standard est aujourd’hui encore dans sa phase de développement
13
Projet, ELE6306 - avril 15École Polytechnique de Montréal 12 Questions
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.