TEXTE DES TRAVAUX PRATIQUES Électronique numérique Année 2011-2012 Laboratoire SIGMA : Bât. H, 4ème étage Travaux pratiques d’électronique : Bât. A, 1er étage Travaux Pratiques d’Électronique, ESPCI 1 ère année PARTIE I : DE LA MÉMOIRE RS À LA BASCULE JK Le but de ces travaux pratiques est d’introduire les notions nécessaires à l’étude et à la réalisation des systèmes séquentiels. I Travaux Pratiques d’Électronique, ESPCI 1 II ère année La mémoire RS C’est une mémoire très simple : il faut 4 transistors. Elle est représentée sur la Figure 3, dans une réalisation avec des portes NON-ET (une autre réalisation utilise des portes NON-OU). Définitions Un système combinatoire est caractérisé par des relations booléennes entre ses n entrées (ei) et ses m sorties (Sj). La valeur du vecteur S est entièrement déterminée par celle du vecteur d’entrée e, c’est une fonction de e (voir Figure 1). Figure 3. La mémoire RS (réalisation avec des portes NON-ET). Figure 1. Représentation d’un système combinatoire Ceci n’est plus vrai dans le cas d’un système séquentiel, pour lequel à une même valeur du vecteur d’entrée peuvent correspondre différentes valeurs du vecteur de sortie. Plus précisément, c’est à une séquence temporelle déterminée des valeurs du vecteur d’entrée que correspond une séquence du vecteur de sortie. Cette définition suggère l’existence de mémoires dans les systèmes séquentiels. Le temps joue un rôle fonctionnel. Un système séquentiel se représente par un modèle bouclé, comportant des entrées indépendantes, des sorties, des variables d’état (ou excitations) qui sont rebouclées et retardées pour constituer des entrées d’état. Les sorties et les excitations sont des fonctions booléennes des entrées indépendantes et d’état (voir Figure 2). Les sorties Q et P ne peuvent pas s’exprimer comme des fonctions booléennes des seules entrées a et b à cause du bouclage. Pour analyser le fonctionnement de ce système séquentiel, il est nécessaire de prendre en considération le temps de traversée des portes. Pour définir les excitations, il faut supprimer toutes les boucles en coupant le minimum de connexions (une coupure = une excitation). Il suffit ici de couper une seule connexion pour obtenir une telle représentation, comme le montre la Figure 4. Figure 4. Modèle pour l’analyse de la mémoire RS (système séquentiel). Le système combinatoire ci-dessus fournit les fonctions booléennes de l’excitation et des sorties : !#Q = a.b.q = a + b.q " $#P = q.b = q + b On en déduit les tables de vérité de l’excitation et des sorties (Figure 5). Figure 2. Représentation d’état d’un système séquentiel 1/21 2/21 Travaux Pratiques d’Électronique, ESPCI 1 (a) Q q 10 année Travaux Pratiques d’Électronique, ESPCI 1 ère année (b) QP ab 00 01 11 ère q ab 00 01 11 10 0 1 1 0 0 0 11 11 01 01 1 1 1 1 0 1 11 10 10 01 Figure 5. Tables de vérité de l’excitation (a) et des sorties (b) de la mémoire RS. Chaque colonne correspond à une combinaison des entrées primaires. Agir sur le système consiste à changer de colonne. Par hypothèse, on ne change qu’une entrée primaire à la fois. Un état pour lequel Q = q est dit stable, sinon il est dit instable. Sur la Figure 5, les états stables sont entourés d’un cercle. Étudier les transitions entre les états stables. Le chronogramme suivant des entrées a et b illustre une utilisation typique de cette mémoire. a Figure 7. Dispositif antirebond. Manipulation Réaliser une mémoire RS à l’aide de deux circuits logiques NON-ET à deux entrées (circuit 7400 ; vérifier individuellement le bon fonctionnement de toutes ses portes au préalable). Prévoir d’utiliser quatre circuits comme indiqué en Annexe 1. b Q P Figure 6. Chronogramme d’utilisation typique de la mémoire RS. Tracer les chronogrammes de Q et de P. Décrire le fonctionnement de la mémoire, en particulier la fonction des entrées a et b, et en déduire quelle est l’entrée s (comme « set » : mise à 1 de la sortie Q) et l’entrée r (comme « reset » : mise à 0 de la sortie Q). Figure 8. Chronogramme de test. Vérifier les états stables et les transitions données par la table d’excitation en appliquant la séquence de la Figure 8 aux entrées à l’aide d’interrupteurs (compléter la séquence de Q). Utilisation de la mémoire RS Du point de vue de l’utilisateur, il est intéressant de disposer de la sortie Q et de son complément Q . La table de vérité des sorties montre que P = Q pour tous les états stables sauf pour les entrées a = b = 0. Il suffira donc d’interdire cette combinaison des entrées. Montrer que c’est le cas pour l’application la plus connue, un dispositif de suppression des commutations intempestives dues aux rebonds des interrupteurs mécaniques utilisés comme éléments de commande des systèmes logiques, dit dispositif « anti-rebond », représenté sur la Figure 7. 3/21 III Le verrou RS C’est la mémoire verrouillable la plus simple que l’on puisse imaginer : elle ne comporte elle aussi qu’une excitation, voir Figure 9. L’entrée de verrouillage est notée v. 4/21 Travaux Pratiques d’Électronique, ESPCI 1 ère année Travaux Pratiques d’Électronique, ESPCI 1 ère année v s r Q Figure 9. Le verrou RS. déverrouillage verrouillage déverrouillage Figure 11. Chronogramme d’utilisation du verrou RS. QP v q 0 1 sr 00 01 11 10 00 01 11 10 0 01 01 01 01 01 01 11 11 1 10 10 10 10 10 01 11 10 En général, le verrou RS est utilisé pour constituer un « verrou D ». Il suffit pour cela de réaliser s = d et r = d . Les entrées s et r ne sont donc jamais à r = s = 1. Le problème dû à l’aléa de propagation n’existe donc pas pour le verrou D2. De plus, pour tous les états stables, on a P = Q , comme le montre la table de vérité des sorties ci-dessous. verrou D Figure 10. Table de vérité des sorties du verrou RS. d La table de vérité des sorties du verrou RS est représentée sur la Figure 10. Étudier le fonctionnement du verrou à l’aide de cette table. En particulier : a) Expliciter son comportement lorsque v = 0 et qu’interviennent des transitions sur les entrées s et r. De même lorsque v = 1. b) Établir quelle transition de l’entrée de verrouillage provoque la transition éventuelle des sorties. c) Montrer que si v passe de 1 à 0 avec s = r = 1, la valeur de Q résultante n’est pas prévisible (les temps de traversée des deux couples de portes NON-ET sont différents et inconnus) : nous dirons que le fonctionnement de la verrou comporte un aléa de propagation1. Utilisation du verrou RS ; verrou D QP s Q verrou SR r v P v q d 0 0 1 1 0 1 0 01 01 01 11 1 10 10 01 10 Figure 12. Le verrou D. Le chronogramme de la Figure 13 illustre le fonctionnement typique du verrou D. Lorsque v = 1, Q suit l’entrée d avec un retard de quelques nanosecondes. La transition 1 ! 0 de l’entrée v verrouille la sortie Q à la valeur qu’elle possède à cet instant. Ceci impose donc d’interdire la combinaison s = r = 1 lorsque l’on utilise ce verrou. Voici un chronogramme d’utilisation typique : v d Q Figure 13. Chronogramme d’utilisation du verrou D. 1 Noter que la table de la Figure 10 ne met pas en évidence l’aléa de propagation, observation qui dévoile une carence de notre méthode d’analyse : la table de vérité des excitations ne permet pas d’analyser complètement le fonctionnement d’un système séquentiel, à une seule excitation qui plus est ! En effet, dans un circuit où un même signal emprunte deux chemins symétriques, il faut, pour mettre en évidence un aléa de propagation, considérer deux signaux différents, un par chemin, pour te établir la table d’excitation. À faire en exercice, pour le schéma simplifié avec s = r = 1 = c , qui est le cas qui nous occupe, avec deux signaux v1 et v2 pour le signal v. En fait, à cause du retard introduit par la porte NON entre les deux entrées s et r, les entrées s et r sont à 1 pendant quelques nanosecondes quand d passe de 0 à 1. Pour qu’il y ait un aléa de propagation, il faut que le verrou passe de 0 à 1 justement pendant ces quelques nanosecondes. Évaluer la probabilité d’un tel événement. 5/21 6/21 2 Travaux Pratiques d’Électronique, ESPCI 1 ère année Travaux Pratiques d’Électronique, ESPCI 1 Néanmoins, comme le verrou RS, le verrou D ne peut être utilisé comme élément de base d’un système de logique synchrone dont l’horloge serait appliquée à l’entrée v. Exercice : montrer que l’on ne peut pas réaliser un N-registre à décalage avec N verrous D en cascade. UQ h 0 10 00 01 11 10 00 00 00 00 00 00 00 10 10 01 00 00 00 00 01 01 11 11 11 11 11 11 11 11 01 11 11 IV 10 11 11 11 11 10 00 10 10 Les éléments de base des systèmes synchrones sont des bascules dont, contrairement aux verrous, le signal d’horloge seul provoque les transitions de la sortie en fonction des valeurs imposées aux entrées. Les problèmes apparus avec les verrous sont résolus en compliquant la structure. Ainsi, les bascules possèdent au moins deux excitations. On obtient une bascule RS en mettant en cascade deux verrous RS, le verrou « maître » étant commandé par l’horloge, et le verrou « esclave » par son complément, voir Figure 14. Les deux excitations sont par exemple U et Q. année 1 sr 00 01 11 uq Manipulation Réaliser un verrou RS en utilisant la mémoire RS précédente, sur le même circuit 7400. La bascule RS ère Figure 15. Table de vérité des excitations de la bascule RS. Utilisation de la bascule RS Montrer que, contrairement au verrou RS, une bascule RS maître-esclave peut-être utilisée comme élément de base d’un registre à décalage (voir le schéma du registre à décalage SN7495 sur le site de Texas Instruments http://www.ti.com/). Manipulation Figure 14. La bascule RS. N.B. L’indétermination de la sortie des verrous lorsque s = r = 1 persiste ici et conduit à interdire cette combinaison des entrées lors de l’utilisation de cette bascule. La Figure 15 montre la table des excitations U et Q. Vérifier que les entrées s et r ne provoquent jamais de transition de la sortie Q, et qu’elles sont provoquées par la transition 1 ! 0 du signal h. Comme nous l’avons dit plus haut, c’est cette propriété qui définit ce que nous appelons une bascule et ce qui en fait un élément de base fiable d’un système synchrone. 7/21 Réaliser une bascule RS en utilisant le verrou RS précédent comme verrou esclave. Prendre des NON-ET à 3 entrées pour les entrées du verrou maître (circuit 7410), et des NON-ET à 2 entrées pour ses sorties (cf. Annexe 1). Mettre les entrées inutiles au +5V (ce qui revient à imposer un « 1 » logique), elles seront utilisées pour le montage suivant. Tester le verrou maître seul, puis mettre ses sorties en entrée du verrou esclave, ainsi que l’horloge complémentée (circuit 7404). Vérifier le bon fonctionnement de la bascule. V La bascule JK créneau Une légère modification de la bascule RS permet d’obtenir une bascule sans aléa de propagation, et qui permet d’utiliser la combinaison j = k = 1 conduisant au changement inconditionnel de la valeur de la sortie. Le fonctionnement d’une telle bascule est défini par la pseudo-table de vérité (voir Annexe) du Tableau 1 : 8/21 Travaux Pratiques d’Électronique, ESPCI 1 J 0 0 1 1 K 0 1 0 1 ère année Travaux Pratiques d’Électronique, ESPCI 1 Q+ Q– 0 1 h Q– k Tableau 1. Pseudo-table de vérité de la bascule JK. j ère année Pjh = qJh ET1 qhk ET2 x + qhk ET4 X = qjh + xqhk ET3 q La bascule JK, dite « maître-esclave », est une bascule RS avec deux bouclages supplémentaires des sorties sur les NON-ET d’entrée. P = q + xh x xh ET6 h ET8 Q = xh + q(x + h) ET7 xh ET5 Figure 17. Modèle pour l’analyse de la bascule JK maître-esclave XQ Figure 16. La bascule JK maître-esclave (créneau). Il suffit de deux coupures, par exemple en X et en Q, pour supprimer toutes les boucles, d’où deux excitations. Les fonctions booléennes réalisées par chacune des portes NON-ET sont explicitées sur la Figure 17. On en déduit la table des excitations (Figure 18). Écrire la table de vérité des sorties, et vérifier que, pour les états stables, Q et P sont complémentaires. En déduire pourquoi les bouclages supplémentaires par rapport à la bascule SR suppriment l’aléa de propagation. Vérifier que, lorsque h = 0, une modification des valeurs des entrées J et K ne modifie pas celle de la sortie Q (comme pour la bascule RS). Vérifier que, pour des valeurs données de j et k, une transition 0!1 de l’horloge ne modifie pas la valeur de Q, alors qu’une transition 1! 0 est susceptible de le faire. h 0 1 jk 00 01 11 10 00 01 11 10 00 00 00 00 00 00 00 10 10 01 00 00 00 00 01 01 01 01 11 11 11 11 11 11 01 01 11 10 11 11 11 11 10 10 10 10 xq Figure 18. Table des excitations de la bascule JK maître-esclave. Étudier toutes les transitions du système, pour j et k fixées, lorsque l’horloge effectue une transition 0!1, puis une transition 1!0. Montrer que cette bascule se comporte conformément à la pseudo-table de vérité du Tableau 1 si r = cte et s = cte pendant que h = 1. La bascule étudiée est dite « créneau » (« pulse-triggered »). Manipulation Réaliser la bascule JK à partir de la bascule SR précédente (ajouter les bouclages des sorties Q et P sur les entrées des NON-ET à 3 entrées non utilisées précédemment). Vérifier que le comportement attendu pour s = r = 1 est bien obtenu. Appliquer aux entrées des signaux mettant en évidence son caractère « créneau ». Vérifier le résultat de ces séquences sur la table de vérité des sorties. 9/21 10/21 Travaux Pratiques d’Électronique, ESPCI 1 VI ère année La bascule JK front positif (FACULTATIF) h j ET ET OU k ET X x ET Y ère année PARTIE II : SYNTHÈSE Ainsi, la fonction JK n’est pas toujours respectée avec une bascule créneau si les entrées J et/ou K changent de valeur quand l’horloge est à 1. Les bascules front positif ou négatif ne présentent pas ce défaut, ce qui permet de le utiliser pour réaliser des circuits synchrones plus rapides. Le schéma de la bascule JK 74109 est représenté sur la Figure 19. Utiliser la méthode précédente pour analyser son fonctionnement. Montrer qu’en coupant aux endroits indiqués, on obtient un circuit combinatoire. Établir la table des excitations X, Y et Q. Caractériser entièrement le fonctionnement (table de vérité, transition active, phase de sensibilisation) de la bascule. ET Travaux Pratiques d’Électronique, ESPCI 1 y ET Figure 19. La bascule JK 74109 (front positif). ET Q q P Construire le schéma du montage qui permet de répondre au cahier des charges et réaliser un tel montage pour au moins un des exercices et un des problèmes proposés ci-dessous. Exercice 1 : Câblage d’un additionneur complet. Un additionneur de nombres exprimés en binaire peut-être réalisé en deux étapes décrites ci-dessous. Proposer des schémas de câblage et réaliser le montage de l’additionneur complet pour deux mots de 2 bits, la sortie comprenant 2 bits plus un bit de retenue. Demi-additionneur avec retenue Ce circuit réalise l’addition de 1bit + 1bit + une retenue de sorte qu’il possède trois entrées et deux sorties. Ecrire ses équations logiques. À l’aide de deux circuits de ce type faire le montage de l’additionneur 2 bits désiré. Exercice 2 : Codeur de priorité Dans un mots de 4 bits, on désire connaître le numéro (codé sur 2 bits) du bit non nul le plus élevé. C’est typiquement ce que l’on utilise dans le cas d’alarmes rangées par ordre de priorité, car lorsque deux alarmes s’enclenchent simultanément, c’est la réponse à l’alarme prioritaire qui doit être mise en œuvre. Prévoir la situation où tous les bits d’entrée sont nuls. Exercice 3 : Détecteur du nombre de jours dans le mois Il s’agit d’un circuit qui reçoit en entrée le numéro du mois codé sur 4 bits et qui indique en sortie si ce mois a 31 jours ou non. Prévoir le mois de février. Exercice 4 : Multiplexeur Un multiplexeur est un circuit qui transmet à sa sortie la valeur de l’une de ses 2N entrées ; les entrées sont numérotées de 0 à 2N-1. L’entrée transmise est choisie par son numéro codé sur N bits d’adresse. Réaliser un multiplexeur 4 entrées (N = 2) (Figure 1). 11/21 12/21 Travaux Pratiques d’Électronique, ESPCI 1 ère année Travaux Pratiques d’Électronique, ESPCI 1 ère année Multiplexeur N bits Entrées Sortie Problèmes 2N Problème 1 : Réalisation de la commande d’un ascenseur Adresse N Figure 1: Multiplexeur Exercice 5 : Circuit transmettant des impulsions d’horloge sous condition. Condition e ? Sortie s Cahier des charges. On désire réaliser la commande d’un ascenseur qui est supposé desservir quatre niveaux (0, 1, 2 et 3). Les « états » possibles de l’ascenseur sont : en arrêt, en montée ou en descente, ceci en fonction de la référence (étage auquel on veut se rendre) et de l’étage où se trouve l’ascenseur. Indications. A tout instant, la logique doit comparer l’étage auquel se trouve l’ascenseur à celui qui est demandé par l’opérateur. Puis, lorsque l’étage demandé et l’étage de l’ascenseur ne coïncident pas, une action adéquate doit s’effectuer afin de déplacer l’ascenseur vers l’étage demandé, sous la forme d’une incrémentation ou décrémentation de celui auquel il se trouve. De ce fait, le circuit à réaliser peut être vu comme comportant deux montages qu’il s’agit de développer indépendamment puis de relier de façon ad hoc : un comparateur, strictement combinatoire, un compteur/décompteur, composé d’éléments combinatoires et séquentiels. Horloge h Figure 2 Cahier des charges. On désire que la sortie s du schéma de la Figure 2 reproduise en synchronisme le signal h pendant que e est au niveau 1, et ceci sans tronquer ni la première ni la dernière impulsion d’horloge transmise (toutefois un décalage est accepté). Proposer un montage réalisant cette fonction et représenter sur un chronogramme les signaux intéressants en faisant apparaître les temps de retard, si on utilise des bascules PET et des bascules NET. Identifier le « glitch » Proposer un montage pour un système ne laissant passer qu’une impulsion. Problème 2 : réalisation d’un chronomètre avec bouton de commande et affichage en décimal. Cahier de charges. On désire réaliser un chronomètre avec affichage numérique de 0 à 15, avec un seul bouton de commande réalisant, par appuis successifs, trois fonctions, dans l’ordre suivant : 1. démarrage du comptage, 2. arrêt du comptage, 3. remise à zéro. Indications. Ce circuit comporte trois montages: un compteur pour la mesure du temps, composé d’éléments séquentiels et combinatoires, Un compteur pour les fonctions du bouton de commande, composés d’éléments séquentiels et combinatoires Le circuit de décodage pour l’afficheur 7 segments est disponibles dans les bibliothèques Quartus. 13/21 14/21 Travaux Pratiques d’Électronique, ESPCI 1 ère année Problème 3 : Réalisation d’un feu de signalisation pour piétons. Cahier des charges : On désire réaliser un feu de croisement entre voitures et piétons. Dans une première partie, on considère que ce feu fonctionne selon un cycle, sans intervention extérieure. Le feu des voitures passe du vert à l’orange, puis de l’orange au rouge, puis retourne directement au vert. Tandis que le feu du piéton est rouge pendant que le feu des voitures est vert ou orange, puis devient vert lorsque le feu des voitures passe au rouge et redevient rouge un peu avant que le feu des voitures ne repasse au vert. Dans une seconde partie, on pourra compléter le circuit de sorte que le cycle précédent ne se déroule que sur demande d’un piéton à partir d’un bouton poussoir, sans quoi le feu reste vert en permanence pour les voitures. Indications : Ce circuit comporte trois parties : Un compteur pour constituer la base de temps du système, Un circuit combinatoire dont les sorties sont les 5 éléments du feu de croisement (vert/orange/ pour voitures et vert/rouge pour piétons), Un circuit combinatoire et séquentiel pour le bouton poussoir, Travaux Pratiques d’Électronique, ESPCI 1 année Annexe 1 Disposition des circuits sur le logitest et conseils Conseils : disposer les quatre circuits ci-dessous sur le logitest dès le début de la manipulation, et tester le bon fonctionnement de toutes leurs portes. Tester également le bon fonctionnement des interrupteurs et des voyants lumineux dont vous aurez besoin. Ces précautions prises, de futurs dysfonctionnements ne pourront être dus qu’à des erreurs de câblage ou à des fils défectueux. 7410 (3 NONET à 3 entrées) 7404 (6 NON) Q P verrou maître 7400 (4 NONET à 2 entrées) 7400 (4 NONET à 2 entrées) S ou J R ou K mémoire SR, puis verrou (esclave) V ou H Figure 20. Disposition des circuits pour la réalisation. 15/21 ère 16/21 Travaux Pratiques d’Électronique, ESPCI 1 ère année Travaux Pratiques d’Électronique, ESPCI 1 Annexe 2 Classification des bascules I Q+ 0 1 T 0 1 Q+ Q– Q! S 0 0 R 0 1 Q+ Q– 1 1 0 1 0 J 0 0 K 0 1 1 ? 1 1 0 1 Q+ Q– 0 Classification à partir des phases de sensibilisation et des transitions actives de l'horloge Définition de la phase de sensibilisation : pour que la pseudo-table de vérité soit effectivement respectée par le fonctionnement d'une bascule réelle, il faut que la ou les entrées (D ou T, ou S et R, ou J et K) soient constantes à partir d'un certain temps avant l'une des transitions du signal d'horloge jusqu'à un certain temps après cette transition ou la suivante (si cette dernière est 1!0). Cette phase de sensibilisation peut donc encadrer une transition (bascule front positif ou front négatif, "Positive or Negative Edge Triggered flip-flop") ou bien la durée pendant laquelle le signal d'horloge est à 1 (bascule créneau, "Pulse Triggered flip-flop"). Les constructeurs utilisent les symboles suivants : • 5" signifie que les entrées doivent être présentes et stables 5 ns avant la transition 0!1 ("set up time"). • "3 signifie que les entrées doivent être présentes et stables jusqu'à 3 ns après la transition 0!1 (hold time). Une bascule créneau ("Pulse Triggered flip-flop") est définie par le symbolisme suivant (exemple): 5" #4 (pour un fonctionnement correct, les entrées doivent être stables au moins 5 ns avant la transition 0!1 de l'horloge et doivent le rester jusqu'au moins 4 ns après la transition 1!0. Il existe les bascules suivantes : Transition active " # Créneau $" #% "Pulse Triggered" Phase de Front positif Verrouillage des entrées $"% sensibilisation "Positive Edge Triggered" "With Data Lockout" Front négatif $#% "Negative Edge Triggered" 17/21 A l’aide du logiciel QuartusII, il est proposé d’effectuer la conception, la simulation et l’implémentation sur circuit logique des problèmes et des exercices proposés. 1 Q! D, T, S, R, J, K représentent les valeurs binaires des entrées pendant la phase de sensibilisation de la bascule. Q– représente la valeur binaire de la sortie pendant la phase de sensibilisation de la bascule. Q+ représente la valeur binaire de la sortie après (éventuellement modifiée par) la transition active (0!1 ou 1!0) du signal d'horloge. Cette transition active est donc celle qui termine la phase de sensibilisation. II année Annexe 3 Travaux pratiques d’électronique numérique Outil de conception assistée par ordinateur (CAO) Classification à partir des pseudo-tables de vérité D 0 1 ère I Principe général du fonctionnement de QuartusII Le logiciel QuartusII permet de dessiner un circuit logique combinatoire ou séquentiel en utilisant des composants logiques (portes, bascules). Le fonctionnement du circuit, dont les entrées et les sorties sont définies lors de la phase de conception, peut ensuite être simulé. Pour réaliser cette simulation, le chronogramme des entrées doit être défini par l’utilisateur et celui des sorties sera déterminé par le logiciel. Lorsque la réalisation est satisfaisante, le logiciel permet de programmer un circuit logique programmable. Les entrées et les sorties du schéma sont affectées à des broches du circuit physique. Le travail proposé doit s’effectuer suivant les trois étapes suivantes : ! ! ! Conception et validation du circuit de commande. Simulation. Programmation du circuit physique et vérification du bon fonctionnement. La suite de ce document présente en détail la démarche à suivre pour l’utilisation du logiciel QuartusII et ceci pour chacune des trois étapes de la conception. II Conception et validation du circuit de commande II.1 Création d’un projet. La première étape consiste à définir un projet qui regroupera les différents fichiers nécessaires à la conception, la simulation et la programmation du circuit. Pour cela, utilisez la commande File > New Project Wizard … ! Choisissez le repertoire c:/TP/ALTERA/ pour enregistrer votre projet et un nom (Next) ! Aucun fichier à inclure (Next) ! Selectionnez le composant sur lequel vous allez programmer votre circuit ; sur votre carte de developpement le composant est EPM3032ALC44-10 de la famille MAX3000 (Next) ! (Next), (Finish) Votre projet est maintenant créé. 18/21 Travaux Pratiques d’Électronique, ESPCI 1 ère année Le premier fichier que vous allez ajouter à votre projet correspond à la saisie graphique du schéma de votre circuit. Il possède l’extension .bdf (Block Diagram File) et porte le même nom que le projet. Pour le créer, aller dans File>New, Block Diagram File. Enregistrez ce fichier dès à présent File>Save As en lui donnant le même nom que votre projet. II.2 Réalisation graphique du circuit Pour positionner les circuits logiques (portes, bascules, compteurs,…), les entrées et les sorties, les signaux logiques 0 et 1 (Vcc, ground), double-cliquez dans la fenêtre qui s’est ouverte (fichier bdf) ou cliquez sur l’icône de la barre d’outil à gauche. Vous pourrez alors choisir les portes logiques ou bascules que vous voulez insérer en les sélectionnant dans la liste des circuits et éléments disponibles en bibliothèque. Les fonctions classiques, les entrées et sorties, les alimentations se trouvent dans la bibliothèque c:/altera/…>primitives> : ! >logic> pour les fonctions combinatoire ; ! >other> pour Vcc et Ground ; ! >pin> pour les entrées et les sorties, ! >storages> pour les bascules JK, D, … Pour tracer les connexions entre les circuits, reliez simplement les entrées et les sorties des composants que vous avez placés sur la feuille. Pour déplacer un circuit tout en maintenant les connexions, cliquez sur l’icône de ce menu. La connexion est établie automatiquement quand les extrémités de deux pistes se touchent par positionnement d’un objet. Il est néanmoins préférable de positionner les circuits suffisamment espacés au départ pour limiter les repositionnements. Pour définir les entrées et les sorties de votre circuit, sélectionnez les composants >pin>input et >pin>output>. Nommez ensuite les entrées et les sorties du circuit que vous êtes en train de créer en double-cliquant sur « PIN_NAME ». Ce sont ces signaux qui vous permettront de simuler le comportement logique du circuit à l’aide d’un chronogramme, et ceux qui seront ensuite disponibles sur les pattes du composant.+ Sauvegardez votre circuit File>Save. Vous lancez la compilation en appuyant sur Start (voir ci-dessous). Travaux Pratiques d’Électronique, ESPCI 1 ère année Pour la compilation, seul la référence du composant est nécessaire, sa programmation n’interviendra que plus tard. Lancez la compilation par le menu >Processing>Compiler Tool> puis Start. Si des erreurs apparaissent, elles sont visibles dans la fenêtre du bas. Double-cliquez sur le message pour la localiser, puis relancer la compilation après correction. Suite à une compilation réussie, un rapport de compilation est disponible qui comporte en particulier le taux d’occupation de la puce, l’implantation prévue des Entrées-Sorties, … Cliquez sur Report de la fenêtre Compiler Tool pour visualiser ce rapport. III Simulation. Le circuit réalise-t-il la fonction logique désirée ? Pour le savoir, il faut définir les signaux d’entrée et observer les signaux de sortie correspondants. Créez un nouveau fichier de type « Vector Waveform File » : File > New > Other Files puis Vector Waveform File (extension .vwf). Pour spécifier la durée totale de simulation si nécessaire, allez dans Edit>End Time. Par défaut, cette durée est fixée à quelques nano seconde ; cette échelle de temps permet d’observer les délais de propagation des signaux dans les portes et les bascules mais elle est peu réaliste pour les exercices et problèmes proposés. Pour spécifier les entrées-sorties qui vous intéressent pour la simulation, doublecliquez sous la colonne Name. Une fenêtre « Insert Node or Bus »apparaît. Si vous connaissez le nom de vos entrées et sorties vous pouvez compéter le champ prévu à cet effet, sinon, cliquez sur Node Finder, selectionnez Pins:all dans filter et cliquez sur list ; faire passer de la partie gauche à la partie droite les signaux qui vous intéressent par le bouton >. Cliquez sur Ok pour revenir à la feuille de conception des signaux. Les signaux que vous avez sélectionnés apparaissent maintenant sur des lignes séparées avec leur chronogramme correspondant dans la partie de droite. Pour attribuer des valeurs aux entrées, sélectionnez la plage à laquelle vous voulez attribuer une valeur en cliquant dans le chronogramme, puis, cette sélection étant faite, cliquez sur la valeur à attribuer à cette zone dans le menu à gauche ). Pour réaliser un signal d’horloge, sélectionnez l’intégralité du signal en cliquant II.3 Validation du schéma par compilation. La phase de validation consiste, pour le logiciel, à vérifier votre circuit : c’est la phase de compilation. Elle est composée de 4 étapes : ! L’analyse de votre circuit et sa synthèse, ! L’optimiser du placement de votre circuit dans la puce que vous avez sélectionnée, ! La création d’un fichier qui sera nécessaire à la programmation de la puce, ! Une analyse des temps de propagations dans votre circuit pour déterminer sa fréquence maximale d’utilisation. 19/21 sur son nom, puis dans le menu de gauche cliquez sur la période de l’horloge entre autre. Utiliser la loupe ( qui vous permet de définir ) pour modifier la plage de temps visualisée. Sauvegardez le fichier (.vwf) et lancer la simulation à partir du menu >Processing>Simulateur Tool puis Start. Verifiez que les boites “Automatically add pins to simulation waveforms”,”Glitch detection”, et Overwrite simulation input file with simulation results” sont cochées. Il peut être nécessaire de revenir sur la durée de simulation. 20/21 Travaux Pratiques d’Électronique, ESPCI 1 IV ère année Programmation du circuit physique. La dernière étape après la compilation et la simulation consiste à programmer la puce avec votre circuit. Il est nécessaire au préalable de placer les entrées et les sorties de votre circuit sur des pattes physique du composant. La fonction >Assignements>Pin Planner ( ) permet de visualiser le composant et d’associer les entrées-sorties aux pattes du composants. Les contraintes de la carte de développement imposent les broches associées aux interrupteurs, aux LED et à l’afficheur. Pour pouvoir assigner une broche particulière du composant à une de vos entrées/sorties compléter la colonne location sur la ligne correspondante. En outre, il est nécessaire de préciser que les broches non utilisées sont à considérer comme des entrées tri-state pour éviter tout conflit entre le composant et la carte : Dans le menu Assignements, cliquez sur Device… ,cliquez sur « Devices and Pin Options.. » dans le cadre à droite, puis dans l’onglet Unused Pins selectionnez dans le menu déroulant « As input tri-stated », ok, ok. Il est alors nécessaire de recompiler le circuit pour re-optimiser le placement. Si vous obtenez des erreurs à ce stade, cela signifie que la complexité du circuit ne permet pas d’assigner les broches que vous avez choisies. Il faut alors envisager d’utiliser un circuit plus gros. Pour programmer la puce, vérifier que votre carte est connectée au PC par le port parallèle ou USB. Cliquez ensuite sur , la fenêtre du programmateur s’ouvre. Vérifiez que le nom du fichier envoyé sur la puce (extension .pof) correspond bien au nom de votre projet et cochez les boites «program» et «verify», puis cliquez sur Start. Observez le fonctionnement du circuit et vérifiez qu’il est bien conforme aux chronogrammes établis en tout début de conception du circuit. 21/21