PROGRAMMATION D'UN PLD PAR LIAISON JTAG ET UTILISATION D'UN ANALYSEUR LOGIQUE SAISIE DE MACHINES A ETATS COMPLEXES, SIMULATION SOUS WARP, IMPLEMENTATION D'UN FICHIER JEDEC DANS UN PLD PAR LIAISON JTAG ET VALIDATION EXPERIMENTALE A L'AIDE D'UN ANALYSEUR LOGIQUE 1 INTRODUCTION Cette seconde journée de formation va vous permettre de vous familiariser avec la liaison normalisée de type JTAG. A travers différents exercices, vous allez utiliser une carte d'interface JTAG pour programmer un PLD de type ISPGAL22V10 puis un CPLD Cypress. Ensuite, vous procéderez à la validation expérimentale de vos différents travaux à l'aide d'un module d'analyse logique par liaison USB sur ordinateur de type PC. 2 RAPPELS SUR L'ISP-GAL22V10 2.1 BROCHAGE
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis 2.2 OU TROUVER DES ISP-GAL22V10? Chez Radiospares, le code commande d'un ISPGAL22LV10-15LJ est le 414-2007 et son prix unitaire est de 5,74. 3 LA LIAISON JTAG NORMALISEE 3.1 PRESENTATION SUCCINCTE L interface JTAG peut se targuer d un certain nombre de caractéristiques marquantes. La caractéristique la plus remarquable est que cette interface travaille, si on le désire, vu depuis le composant, de façon totalement transparente et asynchrone. Cela signifie qu il est possible de tester le composant concerné en cours de fonctionnement sans que cela n ait la moindre influence néfaste sur son fonctionnement. Les dépanneurs de service ne manqueront pas d apprécier cette caractéristique à toute sa valeur. L' interface JTAG permet donc la programmation ISP (In Site Programming) des composants, le débogage de DSP 3.2 SYNOPTIQUE DE L'INTERFACE JTAG Le synoptique ci-dessous est extrait du numéro de septembre 2002 de la revue Elektor. On retrouve les 4 signaux TDI, TMS, TCK et TDO nécessaires à la programmation d'un PLD par liaison JTAG. Page 2/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis 3.3 LES QUATRE SIGNAUX NORMALISES TCK représente le signal d horloge nécessaire à la logique JTAG. Ce signal est parfaitement indépendant du signal d horloge propre au circuit intégré, ce qui explique que ces deux éléments soient totalement asynchrones l un par rapport à l autre. Tous les autres signaux de l interface JTAG sont en synchronisme avec cette entrée d horloge. L entrée TMS commande le contrôleur JTAG. Elle permet, entre autres choses, de choisir entre le registre d instruction et les autres registres. En fonction de l état du contrôleur JTAG et du contenu du registre d instruction on a, en permanence, sélection d un registre qui se trouve pris en registre à décalage entre TDI et TDO. TDI permet de charger une donnée dans un registre, sachant que simultanément TDO permet la lecture du contenu d un registre. 3.4 SCHEMA STRUCTUREL Le schéma structurel ci-dessous, extrait de la revue Elektor de septembre 2002 met en évidence la simplicité de réalisation d'une interface JTAG. 3.5 OU SE PROCURER UN KIT JTAG A PRIX RAISONNABLE La société Santel (54, Grande rue 77580 GUERARD ; tél : 01 64 65 62 65) commercialise l interface JTAG représentée ci-dessous en Kit pour environ 17 TTC. Page 3/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis 3.6 INTERFAÇAGE DU KIT SANTEL AVEC UN ISPGAL22V10 Comme vous pouvez le constater ci-dessous, un simple connecteur mâle de type HE10 permet de programmer un PLD in-situ par liaison JTAG normalisée. 4 REALISATION D'UN COMPTEUR BINAIRE A 8 ETAGES PAR MACHINE A ETATS 4.1 CAHIER DES CHARGES La fonction à réaliser est un compteur binaire à huit étages. Le chiffre binaire disponible en sortie doit s'incrémenter à chaque front montant du signal d'horloge CLK. Votre compteur devra disposer d'une entrée d'initialisation RAZ active à l'état logique bas. Lorsque cette dernière sera à l'état logique haut, le compteur pourra avancer au rythme des fronts montants du signal d'horloge. Lorsqu'elle sera à l'état logique bas, toutes les sorties seront à l'état logique bas. Le comptage sera conditionné à l action sur un inverseur nommé STOP: lorsque STOP sera à l'état logique haut, le compteur pourra avancer au rythme des fronts montants du signal d'horloge. Lorsque STOP sera à l état bas, le comptage s arrêtera et maintiendra le dernier état en sortie. Les sorties seront regroupées en un registre de 8 bits appelé Q. Page 4/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis Les actions associées aux "bulles" seront des instructions évoluées du type : Q <= Q+1. Pour ce faire, vous devrez utiliser une nouvelle bibliothèque en insérant la ligne : use work.std_arith.all; après la déclaration des bibliothèques par défaut. 4.2 CORRESPONDANCE 22V10 ET ISP22V10 SUR LA CARTE FOURNIE 4.3 TRAVAIL A REALISER Démarrez Galaxy et paramétrez un nouveau projet nommé "COMPTEUR8" pour un PALCE22V10-15JC. Dessinez une machine à états permettant de réaliser un compteur binaire 8 étages. Compilez votre machine à états et rattachez le fichier VHDL généré à votre projet. Compilez votre projet (F7) et procédez à l'analyse des différents fichiers "rapports" : brochage, taux d'occupation dans le CPLD, etc. Démarrez le logiciel de simulation "Active HDL Sim" depuis le gestionnaire de projets Galaxy. Définissez les différents "stimulis" et lancez la simulation. Page 5/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis Procédez à l'affectation des broches du PLD, recompilez votre projet puis implémentez le fichier jedec généré par WARP dans un ISPGAL-22V10 à l'aide du câble Jtag fourni. Procédez à la vérification du contenu de votre PLD à l'aide de l'analyseur logique. 5 MODERNISATION D'UN CARILLON SOL SI RE 5.1 DECOMPOSITION FONCTIONNELLE DU CARILLON VERSION CPLD 5.1.1 SCHEMA FONCTIONNEL PARTIEL Dans le schéma fonctionnel ci-dessous, les quatre fonctions à implémenter dans le CPLD sont contenues dans le cadre en pointillés. Multimelo BP Circuit d'initialisation RAZ Synchronisation et choix des cycles LED Finmelo Génération des adresses VcV A0 à A16 17 Restitution du carillon numérisé H123 8 Dcar Division de fréquence par 325 Conversion Numérique Analogique Ucar Référence temporelle de 4 MHz CLK Division de fréquence par 10 H400 Filtrage Vcar Page 6/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis 5.1.2 DESCRIPTION DES DIFFERENTS SIGNAUX UTILES A L'INTEGRATION DANS UN CPLD BP est un signal logique compatible TTL qui est en permanence à l'état logique haut sauf durant l'action sur le bouton poussoir permettant le lancement de la mélodie SOLSIRE. RAZ est un signal logique compatible TTL qui est à l'état logique bas seulement pendant une durée très brève à la mise sous tension du système. Ce signal permet d'initialiser toutes les fonctions intégrées dans le CPLD et ainsi d'éviter le démarrage de la mélodie à la mise sous tension du système. CLK est un signal logique compatible TTL de fréquence 4MHz. Les quatre machines à états permettant la réalisation des fonctions intégrées dans le CPLD sont synchronisées sur les fronts montants de cette même horloge. Multimelo est une entrée logique compatible TTL qui, lorsqu'elle est forcée au niveau logique bas permet la génération de mélodies SOLSIRE successives et ce, jusqu'à ce qu'elle soit à nouveau forcée au niveau logique haut. Finmelo est un signal logique compatible TTL qui passe au niveau haut pendant un court instant dès la fin de l'émission de la mélodie SOLSIRE. LED est un signal logique compatible TTL actif au niveau bas. Il permet la commande d'une diode électroluminescente intégrée au bouton poussoir. Cette dernière s'allume dès l'action sur le bouton poussoir et s'éteint automatiquement dès la fin de la mélodie. VcV est un signal logique compatible TTL qui est au niveau logique bas durant l'émission de la mélodie. Il permet d'activer la fonction "Génération des adresses". H123 est un signal logique compatible TTL de fréquence 12,3 khz. La mélodie SOLSIRE stockée dans la mémoire EPROM réalisant la fonction "Restitution du carillon numérisé" étant échantillonnées à la fréquence de 12,3 khz, H123 sert de signal d'horloge à la fonction "Génération des adresses". A0 à A16 est un bus d'adresses de 17 fils permettant de lire les 131072 octets sauvegardés dans la mémoire EEPROM réalisant la fonction "Restitution du carillon numérisé". H400 est un signal logique compatible TTL de fréquence 400kHz. Il sert de signal d'horloge au filtre à capacités commutées réalisant partiellement la fonction "Filtrage". 5.2 SCHEMA STRUCTUREL PARTIEL DE LA CARTE CARILLON VERSION CPLD Le carillon SOLSIRE version CPLD a connu de nombreux changements au niveau de sa conception. En effet, le signal d'horloge n'est plus généré par un montage de type astable à NAND Trigger mais par une horloge intégrée de 4MHz. Toute la logique classique a été remplacée par un CPLD Cypress de référence CY37064P44-125JC. Enfin, la mémoire de type EPROM M27C512 a été remplacée par une mémoire EEPROM de référence AM29F010B fabriquée par AMD. Cette dernière, d'une capacité de 1Mégabit nous permettra d'y intégrer différentes mélodies ou un fichier de type Wave d'une durée d'environ 16 secondes lorsqu'il est échantillonné à la fréquence de 8kHz. Page 7/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis Page 8/9
Eric GARNIER pour l'iufm de Limoges Formation du mercredi 11 mai 2005 au Lycée Georges Cabanis 5.3 TRAVAIL A REALISER Dans la mesure où vous devez réaliser quatre fonctions logicielles synchronisées sur la même entrée d'horloge, vous devrez dessiner les quatre machines à états correspondantes sur la même feuille. Le travail ci-dessous devra bien entendu être réalisé en quatre étapes avec des simulations, voire des phases expérimentales de vérification sur une carte cible différente de celle du carillon. Démarrez Galaxy et paramétrez un nouveau projet nommé "Carillon" pour un CY37064P44-125JC. Dessinez les quatre machines à états permettant de réaliser les quatre fonctions à implémenter dans le CPLD. Procédez à l'affectation des broches du CPLD, recompilez votre projet puis implémentez le fichier jedec généré par WARP dans un CY37064P44-125JC à l'aide du câble Jtag fourni. Procédez au test définitif. Page 9/9
ANALYSEUR LOGIQUE USB ANT16 NOTICE SIMPLIFIEE I. Introduction Qu est-ce qu un analyseur logique? Pour simplifier, on peut considérer qu un analyseur logique est équivalent à un oscilloscope numérique comprenant de nombreuses voies. Cependant l analyseur logique ne travaille qu avec des niveaux logiques 0 et 1. De plus, il possède des possibilités de déclenchements complexes portant sur l ensemble des voies. II. Description Principe d utilisation de l analyseur logique USB ANT16 CARTE EN TEST SIGNAUX A ANALYSER SONDES DE MESURE MODULE USB CABLE USB PC MODULE USB SONDES DE MESURE LR- Notice simplifiée Analyseur logique USB ANT 16 1
L analyseur est constitué d un module USB interfacé à un PC. Un câble à plusieurs conducteurs est fourni avec l analyseur. Chaque conducteur est équipé à chaque extrémité d un grip fil Le PC est équipé d un logiciel nommé ANT16. Celui ci permet d afficher tous les signaux mesurés par les sondes. Câblage Voie 0 : Rouge Voie 1 : Orange Voie 2 : Jaune Voie 3 : Vert Voie 4 : Bleu Voie 5 : Violet Voie 6 : Gris Voie 7 : Blanc Voie 8 : Marron Voie 9 : Rouge Voie 10 : Orange Voie 11 : Jaune Voie 12 : Vert Voie 13 : Bleu Voie 14 : Violet Voie 15 : Gris Entrée Trigger/Clock : Blanc Sortie Trigger out : Noir Les voies 0 à 15 sont équipés de grips-fils rouges Masse : Conducteur marron extérieur (sur le bord de la limande) + conducteur central noir : les deux conducteur de masse sont équipés de grip-fils noirs. L entrée Trigger/Clock est équipée d un grip-fil jaune La sortie Trigger out est équipée d un grip-fil bleu. LR- Notice simplifiée Analyseur logique USB ANT 16 2
III. Utilisation du logiciel Le lancement du programme ANT16 entraîne l affichage de la fenêtre suivante : L utilisation du logiciel est assez intuitive et ne doit pas poser de problèmes particuliers. On a récapitulé ici les différentes commandes. Commandes : Menu File Le menu File permet de Lire (Read), ou de Sauver (Save) une configuration de mesure ou des données (relevé de mesures),d imprimer (Print) un résultat de mesure ou de quitter le programme (Exit). LR- Notice simplifiée Analyseur logique USB ANT 16 3
Les icônes situés en dessous permettent respectivement de : - lire une configuration de mesure - sauver une configuration de mesure - imprimer un résultat de mesure. Menu Analyzer Le menu analyzer permet : - d effectuer des mesures en mono-coup ou en continu (Continuous) - de démarrer ou d arrêter une mesure ( Start ou Stop) les icônes situés au dessous permettent d effectuer les mêmes commandes : Menu View Le menu View permet d effectuer différents Zoom. Agrandissement (Zoom In ou +), réduction (Zoom out ou -), Zoom plein écran (Zoom All). Les icônes situés au dessous permettent d effectuer les mêmes commandes : Menu Help Le menu Help permet d accéder à l aide en ligne. Les icônes situés en dessous permettent respectivement d accéder à l aide et de quitter le programme. LR- Notice simplifiée Analyseur logique USB ANT 16 4
1 Module La case 1 Module indique quel est le module actif. En effet, il est possible d utiliser plusieurs modules sur le même PC (un PC possède plusieurs ports USB) Si l appareil ne fonctionne pas correctement, vérifier que la case Module est bien remplie (cela indique que le dialogue entre le PC et le module USB est correct). Sampling clock. C est l horloge d échantillonnage : correspond à la base de temps sur un oscilloscope. Le module échantillonne les signaux à la fréquence d échantillonnage et affiche une suite de 2048 échantillons par voie. Dans le cas d une horloge d échantillonnage externe, sélectionner la case Synchronous. Trigger position. Ce curseur définit la position de la fenêtre de mesure par rapport à l instant de déclenchement. Exemple : - si le curseur est à 50%, l instant d échantillonnage sera présent au milieu de la fenêtre de mesure. l écran. - si le curseur est à 10%, l instant d échantillonnage sera présent au début de la fenetre d analyse. - si le curseur est à 90%, l instant d échantillonnage sera présent à la fin de la fenêtre d analyse. Threshold Seuil de décision : représente la tension en dessous de laquelle, l analyseur voit un niveau 0 ou un niveau 1. Exemple : Threshold = 1,4V Sur chaque voie un signal inférieur à 1,4 V sera pris en compte comme un niveau «0», un signal supérieur à 1,4V sera pris en compte comme un niveau «1». Trigger Type : Ce point est abordé au chapitre suivant. LR- Notice simplifiée Analyseur logique USB ANT 16 5
IV. Différents mode de déclenchement. L analyseur possède 3 modes de déclenchement : Le mode PATTERN Le mode EDGE Le mode ADVANCED Ces différents modes de déclenchement sont définis par rapport au différentes conditions de déclenchement. Conditions de déclenchement Les différentes conditions de déclenchement sont les suivantes : Déclenchement sur niveau 0 Déclenchement sur niveau 1 Déclenchement sur front montant Déclenchement sur front descendant Déclenchement sur front montant ou descendant Déclenchement indifférent Mode PATTERN : Dans le mode pattern, on définit une condition de déclenchement pour chacune des voies dans la colonne P0. Le déclenchement est effectifs si toutes les conditions sont réunies simultanément. Soit : Déclenchement = (condition 1 sur voie 1) ET (condition 2 sur voie 2) ET Exemple : On a déclaré dans la colonne P0 les conditions de déclenchements suivantes : Voie 0 : front montant Voie 1 : X (indifférent) Voie 2 :X Voie 3 X Voie 4 : 1 Voie 5 : 0 Voie 6 : 1 Voie 7 : 0 Voie 8 à 15 : X L analyseur va déclencher sur le front montant de la voie 0 pendant que les voies 4 à 7 sont à 1010. LR- Notice simplifiée Analyseur logique USB ANT 16 6
Mode EDGE : Comme dans le mode pattern, on définit une condition de déclenchement pour chacune des voies dans la colonne P0. Le déclenchement est effectifs si l une des conditions est réunie. Soit : Déclenchement = (condition 1 sur voie 1) OU (condition 2 sur voie 2) OU En mode Edge, les voies affectées «déclenchement indifférent» n interviennent pas sur le déclenchement. Exemple : On a déclaré dans la colonne P0 les conditions de déclenchements suivantes : Voie 0 : front montant Voie 1 : front montant Voie 2 :X Voie 3 X Voie 4 : X Voie 5 : X Voie 6 : 1 Voie 7 : 0 Voie 8 à 15 : X L analyseur va déclencher : - sur le front montant de la voie 0 - ou sur le front montant de la voie 1 - ou si la voie 6 est à 1 - ou si la voie 7 est à 0 Mode ADVANCED : Ce mode de déclenchement complexe permet de définir des conditions de déclenchement plus évoluées que les modes précédent. On peut définir deux conditions de déclenchement ( Colonne P0 et P1) On peut faire des opérations logiques complexes entres ces deux modes de déclenchement. Ces opérations sont définies à l onglet «Advanced triggering». Pour plus de précisions, se reporter à la documentation de l ANT16 (un fichier pdf contient le «user manual») Dans toutes les configurations, l instant de déclenchement est repéré à l instant 0 sur le relevé de mesures. LR- Notice simplifiée Analyseur logique USB ANT 16 7
V. Trucs et astuces - Ne câbler l entrée Trigger/Clock qu en cas de réel besoin. En effet, si un signal est présent sur cette entrée, c est cette entrée qui va servir de signal de déclenchement. - En fonctionnement normal les Leds Vertes et Rouges du module USB doivent clignoter. Si ces leds se bloquent relancer l analyseur par une commande Stop puis Run. - Impression : sans précautions particulières, le logiciel peut envoyer de nombreuses pages lors d une impression. Utiliser de préférence le Print Preview (aperçu avant impression). - Les curseurs Rouge et Bleu peuvent être déplacés par un clic sur le chronogramme. Un clic gauche déplace le curseur rouge, un clic droit déplace le curseur droit. - Comme tout système échantillonné, on veillera à respecter le Théorème de Shannon : La fréquence de l horloge d échantillonnage (sample clock) doit être supérieur (très supérieur) à la plus haute de s fréquence échantillonnée (avec au moins un facteur 2). - Le curseur indique lorsque on le déplace sur la zone des chronogrammes la valeur en hexadécimal et en décimal du mot de 16 bits formé par les 16 voies. Pour une indication correcte, le poids faible doit être en haut de l écran (voie 0), le poids fort est en bas de l écran voie (15) - Une voie non connectée (en l air) est affichée comme un 0. VI. Spécifications techniques LR- Notice simplifiée Analyseur logique USB ANT 16 8