ECOLE POLYTECNIQUE UNIVERSITAIRE DE MONTPELLIER Représentation et Synthèse des Systèmes Logiques Travaux Pratiques ERII - 2008-2009 Objectifs et Organisation des séances de TP : L objectif de ces TP est d appréhender les aspects temporels liés à la conception de circuits logiques. Les délais de propagation des signaux dans les blocs logiques ainsi que les phénomènes transitoires intervenant en sortie de ces blocs sont mis en évidence. A partir de là, les aspects séquentiels sont abordés en insistant sur l aspect temporel, c'est-àdire sur le respect des temps de setup/hold, la définition de la fréquence d horloge etc L accent est particulièrement mis sur une approche «robuste» de la conception de circuits évitant toute structure logique sur les signaux sensibles (signaux asynchrones tels que Clear, Preset ou orloge). L aspect utilisation des technologies programmables et également abordé lors de ces TP en implantant certains circuits (additionneurs, gestionnaire de feux de carrefour) sur la carte FPGA Altera. Durant chaque séance, il est demandé d effectuer un travail de réflexion, d'implantation d'un système et de sa simulation/vérification, à l'aide de l'outil Max+plus II ou Quartus (Altera). L évaluation de ce travail est faite à partir d un compte rendu (succinct ), rendu à la fin de chaque séance. Ce dernier doit présenter les structures développées, les résultats du simulateur, mais surtout une analyse de ces résultats notamment sur l aspect temporel. ECOLE POLYTECNIQUE UNIVERSITAIRE DE MONTPELLIER UNIVERSITE MONTPELLIER II SCIENCES ET TECNIQUES DU LANGUEDOC Place Eugène Bataillon 34095 MONTPELLIER CEDEX 5 Tél. : 04 67 14 31 60 Fax : 04 67 14 45 14 E-mail : scola@polytech.univ-montp2.fr
ARITMETIQUE BINAIRE L objectif de ce TP est, pour se familiariser aux fonctions du simulateur, de réaliser les modules élémentaires de l arithmétique binaire. 1. Addition binaire a. Concevoir un circuit ADD1 réalisant l addition de 3 bits (2 bits plus retenue). On fournira en sortie la somme et la retenue. b. Concevoir un circuit ADD4 réalisant l addition de deux mots de 4 bits à partir du bloc ADD1 précédent. c. Concevoir et simuler un circuit ADD16 réalisant l addition de deux mots de 16 bits à partir du bloc ADD4 précédent. d. Mettre en évidence la fréquence maximum de fonctionnement du bloc additionneur précédent. 2. Soustraction binaire a. Réaliser un soustracteur binaire de 4 bits b. Réaliser un module qui, en fonction d une commande C, fait soit l addition soit la soustraction de deux nombres de 4 bits. 1
REGISTRES et COMPTEURS Le but de ce TP est de se familiariser avec les éléments de base des systèmes logiques séquentiels que sont les bascules, registres et compteurs. L objectif est d étudier la structure de ces éléments et d analyser leur fonctionnement et plus particulièrement leur fonctionnement temporel. 1. Bascules Etudier la bascule D disponible en bibliothèque (DFF). On mettra en évidence : - la table de vérité, - le rôle de l horloge (évolution des sorties sur niveau ou sur front d horloge), - le rôle des forçages (niveaux de forçage - lien avec l horloge). Imaginer une structure de bascule D dont les signaux de forçage à 0 (RAZ) et à 1 (RAU) sont synchrones (Mise à 0 ou à 1 de la sortie sur le front actif de l'horloge). 2. Registres a. A l aide de bascules et de portes, réaliser un registre 4 bits, muni de d une commandes permettant de configurer le registre : - en mode chargement parallèle, - en mode inhibition (mémoire). Il devra, de plus, posséder une commande de forçage à zéro instantané. b. Etudier le registre universel disponible dans la bibliothèque (74194). 3. Combinatoire et Registres Construire un additionneur 4 bits dont les entrées et la sortie sont stockées dans des registres à la cadence d une horloge. Déterminer la fréquence de fonctionnement maximum de la structure. A B Add4 S 4. Compteurs 4.1. Compteurs binaires asynchrones Montrer comment réaliser un diviseur de fréquence par 2 à l aide d une bascule D. En utilisant ce principe, construire un compteur par 16 en plaçant en cascade, 4 diviseurs de fréquence par 2 (prévoir une commande de remise à zéro). A partir du compteur par 16 construire un compteur par 10 en agissant sur la remise à zéro des bascules. Conclusion? On mettra en évidence les transitoires qui font qu un tel montage est à proscrire absolument? 4.2. Compteurs binaires synchrones Ecrire la suite des nombres binaires naturels (a k a k-1... a 1 a 0 ) n, n représentant l équivalent décimal. Que peut-on dire de la valeur de (aj) n+1 par rapport à celle de (aj) n en fonction de (a j-1, a j-2,..., a 1, a 0 ) n? En déduire le schéma de câblage d un compteur binaire synchrone par 10 réalisé avec des bascules D, et des portes. Nota: Le compteur doit être entièrement synchrone et en particulier, la commutation de l'entrée de sélection ne doit pas entraîner de modification directe des sorties du compteur/décompteur. En d'autres termes, toute modification des sorties du compteur ne peut être engendrée que par une transition active du signal d'horloge (front descendant ou front montant). De plus, on s'interdit toute logique sur le signal d'horloge. 2
4.3. Comparaison synchrone/asynchrone Faire fonctionner les deux compteurs précédents en parallèle (dans un même circuit). Réaliser une étude comparative. Conclusions? On mettra notamment en évidence les différences de fréquence de fonctionnement entre les 2 montages. 4.4. Compteur/Décompteur de la bibliothèque (Megafonction) En utilisant les macro-cellules (Megafonctions) proposées dans le logiciel, réaliser un compteur/décompteur "synchrone" par 10 possédant 2 entrées de contrôle "Select" et "Inib". - "Select" permet de sélectionner le mode comptage ou le mode décomptage. - "Inib" permet d'inhiber le fonctionnement du compteur/décompteur (conservation de l'état) 3
SYSTEMES A BASE DE REGISTRES ET COMPTEURS 1. Mémoire Construire une mémoire de 2 mots de 4 bits contenus dans 2 registres R1 et R2. Cette mémoire doit posséder 3 modes de fonctionnement disjoints - un mode d écriture d une entrée E dans R1 ou R2, - un mode de lecture de R1 ou R2 dans un registre de sortie RS, - un mode qui préserve le contenu de R1 et R2 quand il n est pas demandé de lecture ou d écriture. Cette mémoire doit posséder un signal de sélection (Cs) permettant d inhiber son fonctionnement, un signal permettant de la configurer en lecture ou en écriture (R/W) et un système d adressage (Adr) permettant de sélectionner le registre R1 ou R2 que l on veut lire (transfert dans RS) ou dans lequel on veut écrire. entrée Cs R/W Adr 4? R1 R2 R S 4 sortie mémoire 2. Registre à tassement Dans le cadre de l étude de la régulation de trafic urbain on est amené à simuler la dynamique d une file de voitures sur une voie quand un feu passe au rouge. Un tronçon de voie AB est simulé par un «registre à tassement» de 8 bits, chaque bit représentant la présence (1) ou l absence (0) d une voiture. A chaque coup d horloge une voiture (un «1») en position i avance (se décale vers la droite) si et seulement si il existe une place vide (un «0») entre cette voiture et le feux. Dans le cas contraire la voiture reste à la même place. L état initial de la file est simulé par le chargement parallèle du registre commandé par un signal Init. Init e(7..0) entrée (A) D7 D6 D1 D0 registre à tassement (B) 8 nbre_de_top Construire ce registre sachant que l on désire connaître le nombre de top d horloge nécessaire au remplissage du registre. 3. Séquenceurs On désire concevoir un système produisant la séquence suivante : 0, 1, 2, 3,, n-1, n, n-1, n-2,, 3, 2, 1, 0, 1, 2, 3, Avec n= 15, suggérer un schéma à base du compteur-décompteur 74191 (ou équivalent). 4
COMMANDE DE FEUX DE CARREFOUR Le but de ce TP est la réalisation d un système électronique permettant de commander les feux tricolores d un carrefour. Les deux voies A et B sont supposées identiques. voie B voie A Cycle des feux Voie A -> V J R R R R Voie B -> R R R V J R La durée de chacun des états d un feu doit donc être la même pour les 2 voies. Pendant un cycle de N unités de temps on doit avoir : t(v A ) = t(v B ) = t(v) =? t(r A ) = t(r B ) = t(r) =? t(j A ) = t(j B ) = t(j) = 1 unité de temps Nota : Pour des raisons de sécurité, lorsqu'un feu doit passer au vert, cela doit être précédé d'une unité de temps ou les deux feux sont simultanément au rouge. a. A partir des relations précédentes, trouver t(r) et t(v) en fonction de N. Application numérique : N = 16. b. Sachant que l on dispose d une horloge générale et d un compteur, construire le diagramme temporel des signaux actifs des voies A et B (Va, Ja, Ra, Vb, Jb, Rb) Pour être complet, le système de commande doit aussi comporter : - une commande INI qui positionne les 2 registres dans l état de départ V A R B, - une commande URG qui doit forcer le système dans l état R A R B en cas d urgence, - une commande JC qui doit positionner les feux en mode jaune clignotant (C : orloge de clignotemment). - INI JC URG COMMANDE DE FEUX DE CARREFOUR V A J A R A V B J B R B 5
Architecture basée sur des registre à décalage (Figure 1) Le système de commande des feux de carrefour est conçu autour de 2 registres à recirculation (CIRC), contenant un 1 baladeur et dont les sorties commandent les ampoules R, J, V à travers un étage de décodage du mode de fonctionnement. Les commandes S1 et S2 des 2 registres à recirculation (CIRC) pourront être déduites des diagrammes temporels élaborés à partir des chronogrammes des signaux J, V, R. V B J B R B JC URG C DECOD COMB S2 R2 V2 J2 CIRC S1 RESET INIT CIRC C0 C1 C2 C3 V1 J1 R1 COMPT16 C DECOD V A J A R A Figure 1 : Architecture proposée pour la commande de feux de carrefours Architecture basée sur une machine d état (Figure 2) Construire ce système à partir d un compteur et d une machine d état. Figure 2 : Architecture basée sur une machine d état 6
C0 C1 C2 C3 VA JA RA VB JB RB S1 S2 7