1 - Simulation d un circuit sous QuartusII



Documents pareils
SIN-FPGA DESCRIPTION PAR SCHEMA

VIII- Circuits séquentiels. Mémoires

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Manuel BlueFolder ADMINISTRATION

Le langage C. Séance n 4

Guide de démarrage rapide. (pour la version 5.0.)

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

IFT1215 Introduction aux systèmes informatiques

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Introduction à Eclipse

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

FAIRE SES COMPTES AVEC GRISBI

BIRT (Business Intelligence and Reporting Tools)

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Utilisation du logiciel Epson Easy Interactive Tools

Tutorial Terminal Server sous

SCL LOGICIEL DE CONTROL

Manipulations du laboratoire

SpeechiTablet Notice d utilisation

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Premiers Pas avec OneNote 2013

Logiciel PICAXE Programming Editor

Silhouette Studio Leçon N 2

ENVOI EN NOMBRE DE SMS

Travaux pratiques avec RapidMiner

Traitement de texte : Quelques rappels de quelques notions de base

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Guide de l utilisateur

ENVOI EN NOMBRE DE SMS

KM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI.

1.1 L EXPLORATEUR WINDOWS

Utilisation du logiciel GALAAD

l'ordinateur les bases

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Utilisation du visualiseur Avermedia

Enregistreur sans papier. Interface LON. B Description des interfaces 10.99/

GUIDE Excel (version débutante) Version 2013

COURS WINDEV NUMERO 3

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

Assistant d e tablissement de Tableaux

Transmission d informations sur le réseau électrique

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

Comment réaliser une capture d écran dans Word. Alors comment ouvrir une page Word?

sommaire Archives... Archiver votre messagerie... Les notes... Les règles de messagerie... Les calendriers partagés Les listes de diffusions...

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Auto formation à Zelio logic

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

MANUEL D UTILISATION PRO-FACE

Notice ARES Version 5.20 Française

Contrôler plusieurs ordinateurs avec un clavier et une souris

LOGICIEL ALARM MONITORING

TP1 - Prise en main de l environnement Unix.

Conception Systèmes numériques VHDL et synthèse automatique des circuits

SolidWorks edrawings et publications

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Manuel : Comment faire sa newsletter

Guide PME Version

Volet de visualisation

Universal Robots. Fiche Méthode : Installation du simulateur Polyscope

MANUEL D UTILISATION DES OUTILS «MapCERN»

Utilisation de KoXo Computers V2.1

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

IV- Comment fonctionne un ordinateur?

Administration du site (Back Office)

Réalisez votre propre carte de vœux Éléctronique

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

EXCEL TUTORIEL 2012/2013

!" #$$%& Disque dur 2.5 pouces Firewire Apple MacOS FR V2.4 - Page 1/17

Ensuite, insérer la clé USB 3.0 compatible, et lancer l'assistant Windows To Go :

Conception Systèmes numériques VHDL et synthèse automatique des circuits

ALLIANZ MODE OPERATOIRE DE MIGRATION D UNE AGENCE WINDOWS Août Version du document : 010

OpenOffice.org IMPRESS. Notes de cours Novembre 2005 Version 1.0

Créer un diaporama avec OpenOffice.org Impress

Pour plus d informations consultez nos FAQS sur

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Les Utilisateurs dans SharePoint

Mon aide mémoire traitement de texte (Microsoft Word)

GUIDE DE PRISE EN MAIN

La Clé informatique. Formation Excel XP Aide-mémoire

Gestion des documents avec ALFRESCO

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

Excel 2007 Niveau 3 Page 1

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

QUESTION 1 {2 points}

GPA770 Microélectronique appliquée Exercices série A

Contro ler plusieurs ordinateurs avec un clavier et une souris

Utilisation du client de messagerie Thunderbird

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

Transcription:

1.1 Objectif TP Logique Séquentielle - PeiP2 1 - Depuis de nombreuses années, la conception de circuits numériques est réalisée à l aide d outils de CAO (Conception Assistée par Ordinateur). L objectif de ce premier TP est de vous initier à cette pratique indispensable dans le domaine de l électronique numérique. Nous nous contenterons uniquement de simuler notre circuit numérique. 1.2 Apprentissage de l outil de synthèse Nous utilisons QuartusII (version 12.0) qui est un produit de la société Altera, l une des entreprises leader du marché des circuits programmables. Bien que nous n'utilisions pas les circuits programmables Altera dans ce TP, ce logiciel QuartusII comporte un certain nombre de fonctionnalités, en particulier liées à la production de schémas logiques ou structurels ainsi qu à la simulation que nous souhaitons exploiter pour faciliter la conception et l'apprentissage du flot pour la conception de circuits numériques. Les principales étapes de la conception sous QuartusII (cf. Figure 1) sont les suivantes : La création d un projet : cette étape consiste à créer un répertoire de projet et de choisir la technologie (circuit) souhaitée, Édition d un schéma : Cette étape va permettre de saisir le schéma que vous aurez au préalable déterminé, Vérification du schéma et transformation : L objectif de cette étape est de vérifier qu il n y ait pas d erreur de connexions. Par exemple, la connexion d une entrée sur une sortie sera détectée. L outil vous indiquera alors les erreurs par des messages, [Option] Visualisation RTL, Technologique, Machine à état : A ce niveau, il est possible de visualiser ce que l outil QuartusII a compris de votre schéma (RTL signifiant Register Tranfert Level). Il est capable de vous le redessiner d une autre manière. Plus encore, il est possible d obtenir le schéma qui sera utilisé dans le composant final. Enfin, il est également capable d extraire et de dessiner la machine à état correspondant à votre schéma. Simulation du schéma : Cette dernière étape permet de simuler votre schéma. Si la simulation ne convient pas à cause d erreurs de schéma, il est alors possible de modifier le schéma comme indiqué sur la Figure 1. Pour se familiariser avec cet outil, nous utilisons comme tutorial un compteur décimal utilisant un circuit programmable de la série Cyclone III (EP3C25F324-C8). Mise en garde importante : QuartusII est un logiciel dont les fonctionnalités sont aussi nombreuses que complexes. Nous n'utilisons ici qu'une infime partie du logiciel. Une utilisation non conventionnelle de QuartusII aura des conséquences parfois lourdes sur l'ordre des tâches à effectuer pour générer une description. Respectez les étapes indiquées de l'utilisation du logiciel et ne vous égarez pas dans des menus dont le rôle vous échappe! - 1 -

TP Logique Séquentielle - PeiP2 Création du projet Edition du schéma Vérification du schéma et transformation Simulation Visualisation du schéma RTL ou technologique, machine à état Erreurs Fin Figure 1 : Flot de vérification d un schéma par simulation. 1.2.1 Création du projet de conception La première étape est la création du projet sur votre bureau Windows. 1) Créer un dossier «tutorial» sur le bureau 2) Lancer QuartusII 12.0 (attention une version 9.0 existe!!). Sur le bureau, vous avez un icône «QuartusII 12.0sp1 Web Edition» 3) Menu : File New Project Wizard 4) Suivez les instructions de la Figure 2. Vous êtes maintenant prêt à éditer le schéma du compteur décimal. Chemin du projet nom du projet 3 Cliquez Yes 1 Nom du module Cliquez next 2 Cliquez next 4 Cliquez next Cyclone III Sélectionnez FBGA, 324 et 8 Sélectionner le circuit (EP3C25F324- C8 avec 216 I/O) Cliquez next Cliquez finish 5 6 7 Figure 2 : Création d un projet sous QuartusII. - 2 -

TP Logique Séquentielle - PeiP2 1.2.2 Edition du schéma Nous allons réaliser un compteur décimal en bascules JK dont les fonctions sont données ci-après : K 0 = 1 J 0 = 1 K 1 = Q 0 J 1 = /Q 3.Q 0 K 2 = Q 1.Q 0 J 2 = Q 1.Q 0 K 3 = Q 0 J 3 = Q 2.Q 1 Tout d abord, nous devons créer un fichier permettant de dessiner notre schéma. 1) Menu : File New, puis sélectionner «Block Diagram/Schematic File» (Figure 3, étape 1). Une feuille vierge de schéma apparait. Nous allons la sauvegarder sous le nom du module. 2) Menu : File Save as (sans oublier de décocher la case «Add file to current project», puis vérifier que le nom indiqué du fichier est le nom de votre module (Figure 3, étape 2) sélectionner 1 2 Cliquez OK Vérifier! Cliquez Enregistrer Décocher Figure 3 : Création du fichier pour le schéma. Nous allons maintenant saisir le schéma du compteur décimal. La Figure 4 indique les icônes utiles pour notre saisie : - L icône «Sélection» (mode par défaut) permet de sélectionner un composant en cliquant dessus et de le déplacer, de l effacer ou même de le modifier. - L icône «Symboles» permet d insérer les composants tels que les portes logiques, les entrées/sorties et les bascules. - L icône «Fils» permet la connexion entre les entrées/sorties des composants. - L icône «Bus» permet de regrouper plusieurs fils comme par exemple nos sorties Q 0 à Q 3. Portes logiques (AND, OR, ) Autre (Vcc, Gnd, ) Sélection Entrées et Sorties Fils Symboles Bus (plusieurs fils) Bascules D, JK, RS Figure 4 : Edition d un schéma. - 3 -

TP Logique Séquentielle - PeiP2 Pin: Input Other: Vcc Storage: JKFF Cliquez sur le bouton droit de la souris OU cliquez 2 fois sur le nom Logic: NOT Logic: AND2 Pin: Output Saisir le nom du signal «reset» Laisser au moins 6 points entre les bascules pour passer les fils Figure 5 : Placement des composants. La première étape consiste à placer les composants comme indiqué sur la Figure 5 : a) Placer les bascules (pour arrêter de coller les bascules, cliquez sur l icône sélection) b) Modifier le nom des 2 entrées (reset et clk) et de la sortie Q[3..0] qui est un vecteur de 4 fils. c) Sauvegarder votre schéma (Menu : File Save) La seconde étape est la connexion des composants (Figure 6). a) Cliquez sur l icône «Fils», puis cliquez à l endroit où vous voulez commencer la connexion SANS RELACHER le bouton gauche de la souris jusqu à la connexion de fin ou un angle (changement de direction). Remarque : Si vous voulez effacer le fil, cliquez sur l icône «Sélection», sélectionner le fil puis appuyer sur la touche «suppr» du clavier. Attention : Vous devez bien vérifier que tout est bien connecté sinon vous aurez une erreur lors de la génération du fichier de simulation. b) Il est nécessaire d ajouter un bus sur la sortie Q[3..0], ne pas l oublier! (voir Figure 6) c) Nous devons modifier le nom des 4 fils de sortie des bascules pour qu ils correspondent à la sorties Q[3..0]. Sélectionnez le fil, cliquez sur «properties» (Figure 6), puis modifier le nom du fil comme indiqué sur la Figure. d) Sauvegarder votre schéma (Menu : File Save) - 4 -

TP Logique Séquentielle - PeiP2 Bus Modification du nom du fil Figure 6 : Schéma complet du compteur décimal. 1.2.3 Vérification du schéma et transformation La dernière étape est la vérification de votre schéma et la génération des fichiers pour préparer la simulation (Figure 7). 1) Menu : File Create/Update Create HDL Design File from Current File 2) Cliquez sur le bouton OK 3) Si votre schéma est bien saisi, vous devez avoir aucune erreur. 4) Cliquez ensuite sur Analysis & Elaboration (Figure 8, étape 1). Aucune erreur ne doit apparaitre. Obligatoire autrement une erreur apparait au lancement de la simulation. 2 1 Cliquez sur «CreateHDL Design File fromcurrentfile» OK 3 Pas d erreur! Figure 7 : Vérification du schéma. - 5 -

TP Logique Séquentielle - PeiP2 1.2.4 Visualisation du schéma Il est possible de visualiser le schéma ainsi transformé comme l indique la Figure 8. Il est important de noter que l outil QuartusII n a pas changé les noms des entrées/sorties. Cette étape de visualisation est facultative. Double click sur Analysis& Elaboration (pour l étape de transformation) 1 Cliquez sur le bouton droit de la souris de RTL Viewer, puis «open» Entrées: clk reset 2 Sorties: Q Schéma généré par QuartusII Figure 8 : Visualisation du schéma RTL. 1.2.5 Simulation La simulation est effectuée par un second outil appelé ModelSim (leader mondial de conception de circuits par simulation) de la société Mentor Graphic. Cet outil est automatiquement appelé par l outil QuartusII. Les étapes permettant d obtenir une simulation sont les suivantes : a. Lancement de l outil de simulation ModelSim, b. Configuration pour la visualisation des signaux, c. Ecriture d un script pour exécuter un scénario de simulation. Ce scénario fait évoluer le niveau logique des signaux d entrée afin de vérifier le bon fonctionnement de notre compteur. 1.2.5.a Lancement de l outil de simulation ModelSim La démarche est présentée à la Figure 9. 1) Sélectionnez le menu Tools Run Simulation Tool RTL Simulation. 2) Laisser le langage de simulation par défaut. Cliquez sur le bouton OK 3) Le simulateur ModelSim s ouvre. Développez l arbre de la librairie «work», effectuez un clic-droit sur le nom du module «bdf_type», puis cliquez sur «simulate» 4) Dans la zone appelée «Transcript», des informations de chargement doivent apparaitre. Il est à noter que c est à partir de cette zone que nous allons pouvoir exécuter notre simulation. - 6 -

1 Sélectionnez «RTL Simulation» TP Logique Séquentielle - PeiP2 2 3 Cliquez OK 1) Détaillez la librairie «work» 2) Sélectionnez «simulate» 4 Zone de saisie des commandes (Transcript) Chargement du compteur Figure 9 : Mise en place de la simulation ModelSim. 1.2.5.b Création du fichier de scénario de simulation L objectif est de visualiser les signaux afin de vérifier le bon fonctionnement du compteur. Pour ce faire, nous devons créer un script qui définit les signaux à visualiser lors de la simulation ainsi que l évolution des valeurs des signaux d entrées qui représentent un scénario réel. Pour ce faire, il est nécessaire de faire trois différentes étapes : 1) Création du fichier de script : menu File New Source Do, une fenêtre s ouvre dans l outil modelsim et le nom par défaut est «Untitled-1.do» comme indiqué en Figure 10. Nom du fichier par défaut Figure 10 : Fichier script du scénario. 2) Création du scénario : Dans cette fenêtre, tapez «# Scénario de Test», le symbole # permet d ajouter un commentaire. Nous verrons ci-après les commandes permettant de réaliser le script. 3) Sauvegarder le fichier sous le nom «scenario.do» (menu File Save) 1.2.5.c Réalisation du script du scénario Nous rappelons que l objectif est de vérifier notre compteur. Il est donc nécessaire de lui préciser les valeurs des signaux d entrées qui représenteront un scénario réel. Nous proposons le scénario suivant : - Le signal d horloge «clk» aura une période 50 ns - Le signal «reset» sera actif pendant 120 ns (reset = 0), puis passera à 1 (inactif). Le script doit présenter différentes phases : - 7 -

TP Logique Séquentielle - PeiP2 1. Remise à zéro de la simulation 2. Ajout des signaux à visualiser 3. Le scénario Ces 3 phases, représentées par les commandes ci-après, devront être écrites à la suite dans le fichier de script. Lorsque celui-ci sera écrit, n oubliez pas de le sauvegarder. La Figure 11 (action N 1) représente le fichier complet détaillé ci-dessous. 1) Remise à zéro de la simulation # Remise à zéro de la simulation restart -force nowave 2) Ajout des signaux à visualiser. Syntaxe : add wave <nom_du_signal> Ajouter le code suivant # Ajout des 3 signaux à visualiser add wave reset add wave clk add wave Q 3) Evolution des valeurs des signaux (scénario) Syntaxe : Pour un signal ou bus force <nom_du_signal> <valeur> Pour l horloge force <nom_du_signal> 0,1 {<periode_a_zero>} r {<periode>} # ################## # Le scénario # Reset pendant 120 ns et période de l horloge à 50 ns force reset 0 force clk 0,1 {25 ns} -r {50 ns} run 120 ns # Reset inactif, on compte pendant 500 ns force reset 1 run 500 ns 1.2.5.d Exécution du script L exécution du script va ouvrir la fenêtre de simulation et vous permettra de visualiser les signaux reset, clk et Q. Pour lancer le script, comme indiqué Figure 11 (action N 2), tapez dans la console transcript : do scenario.do - 8 -

TP Logique Séquentielle - PeiP2 Une partie du résultat est en Figure 11 (action N 3). Pour obtenir une vue globale de l exécution de la simulation, vous avez les boutons de gestion du zoom comme l indique la Figure 11 (action N 3). Question : Que constatez-vous sur le comportement du compteur? 1 Fichier du scénario Fenêtre transcript Zoom Exécution du script 2 3 Résultat de simulation Figure 11 : Script du scénario et exécution de la simulation. 1.2.6 Correction du compteur décimal Le compteur décimal n est pas correct d après la simulation effectuée. Travail demandé a) Indiquez l erreur et corriger le schéma en conséquence. Attention : N oubliez pas de fermer l outil de simulation ModelSim! b) Refaire le processus (flot QuartusII) pour effectuer la simulation Astuce Il est possible de modifier l affichage d un signal lors de son ajout. Par exemple, la sortie du compteur est en binaire par défaut et nous voudrions l afficher en décimal non signé. Syntaxe : add wave -radix unsigned <nom_du_signal> L option «-radix» permet de préciser le format d affichage. Décimal non signé : unsigned Décimal signé (complément à 2) : decimal Hexadécimal : hexadecimal Octal : octal - 9 -

1.3 Registre à décalage TP Logique Séquentielle - PeiP2 On veut réaliser un registre dit «universel» que nous avons étudié en Travaux Dirigés. Les entrées parallèles sont notées Epi (i=1,2,3,4), les entrées séries Esd, Esg et les sorties parallèles Q 1, Q 2, Q 3, Q 4. On sélectionne le mode parallèle par M=1, et le mode série par M=0. Le sens du décalage dépend de M et du signal de commande S (1 pour décaler à droite, 0 pour décaler à gauche). On réalisera ce registre à l aide de 4 bascules D à fronts montants et de portes logiques de votre choix. Le signal reset «rst» est actif sur niveau bas. E sg E p4-1 E sd M S /rst H Registre Universel Q 4-1 Figure 12 : Registre universel. a) Recherchez les équations des signaux d entrée des bascules Di pour i ϵ [2,3], puis D 1 et D 4 qui sont des cas particuliers (poids faible et poids fort). b) Créez un projet «reg_univ» et saisir le schéma du circuit sous QuartusII. Vous appellerez le nom du module «reg_univ». Important : Les entrées Epi et sorties Qi seront mises sous forme d un bus. c) Ecrire un script correspondant à la Figure 13. Astuce Il est possible d affecter à un bus une valeur autre que binaire. Par exemple, un bus B de 4 bits pour être affecté à la valeur 1100 en binaire, mais également 12 en décimal ou C en hexadécimal. force B 1100 (binaire) force B 10#12 (décimal) force B 16#C (hexadécimal) d) Simuler le registre universel et vérifier son fonctionnement. Période horloge = 50 ns E sg = 0 et E sd = 0 0 ns 70 ns 210 ns 310 ns 410 ns 510 ns /rst E P3-0 0101 0111 M S Figure 13 : Scénario de test du registre universel. - 10 -

2 - Les compteurs TP Logique Séquentielle - PeiP2 Les compteurs 2.1 Compteur asynchrone à arrêt automatique à module variable Dans certains cas, on peut avoir besoin d'un compteur qui s'arrête après un nombre n d'impulsions et attendre un signal extérieur de remise à zéro. Pour ce faire, il faut adjoindre au compteur un circuit qui détectera le nombre n et qui provoquera alors l'arrêt du compteur. Pour bloquer le compteur, il suffit de mettre au niveau 0 les entrées J 0 et K 0 de la première bascule. Dès lors Q 0 ne sera plus modifié lors des coups d'horloge suivants, et comme Q 0 fournit le signal d'horloge H 1 de la bascule suivante, cette dernière ne changera plus d'état non plus, et ainsi de suite pour les bascules successives. Le circuit utilisé est représenté à la Figure 14. Il s'agit (pour un compteur à 4 étages) d'un NAND à 4 entrées, dont la sortie est reliée à J 0 et K 0. Il est clair que lorsque les 4 entrées de ce NAND seront au niveau 1, J 0 et K 0 seront au niveau 0 et le compteur sera bloqué. Si l'on veut, par exemple, que le compteur s'arrête au nombre 1100, il suffit modifier les entrées I 0, I 1, I 2 et I 3. Travail demandé a) Saisir le compteur représenté à la Figure 14 sous QuartusII. b) Tester son fonctionnement à l aide d une simulation. NAND XNOR XNOR XNOR XNOR I 0 2 0 2 1 I 1 2 2 I 2 2 3 I 3 Horloge J H Q J H Q J H Q J H Q K Q K Q K Q K Q 1 1 1 Figure 14 : Compteur asynchrone à arrêt automatique à module variable. 2.2 Compteur synchrone à excédent 3 Un nombre à excédent 3 est formé en ajoutant 3 à la représentation binaire du nombre à coder. La succession des états du compteur est représentée dans le Tableau 1. Travail demandé a) Ecrire la table de transition de ce compteur qui sera réalisé en bascules D sur fronts montants. b) Déterminer les fonctions simplifiées. c) Réaliser le schéma sous QuartusII. - 11 -

Tableau 1 : Etats du compteur synchrone à excédent 3. Q 3 Q 2 Q 1 Q 0 état 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 1 0 0 12 TP Logique Séquentielle - PeiP2 Les compteurs 2.3 Compteur synchrone à recyclage On demande souvent à un compteur de compter jusqu'à un certain nombre puis de retourner à zéro et de recommencer. Considérons par exemple un compteur à recyclage modulo 6 dans le code 8421. La succession des états du compteur est représentée dans le Tableau 2. La synthèse des états du compteur peut s'effectuer par 2 méthodes: l'une utilise la table d'excitation, l'autre est basée sur l'identification. Nous allons illustrer ici la méthode utilisant la table d'excitation. Tableau 2 : Etats du compteur synchrone à recyclage. Q 2 Q 1 Q 0 état 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 0 0 0 0 La succession des états de la bascule 2 0 conduit à la table de Karnaugh ci-dessous, où F 0, F 1, M 0 et M 1 désignent respectivement le Forçage à 0, le Forçage à 1, le Maintien à 0 et le Maintien à 1. De plus, on rappelle la table d'excitation d'une bascule JK. J Bascule JK K X 1 1 X 0 X X 0 état F 0 F 1 M 0 M 1 Q 2 F 1 F 0 F 0 F 1 F 1 F 0 X X Q 0 Q 1 pour J 0 : Q 2 pour K 0 : Q 2 Q 1 1 X X 1 1 X X X Q 0 Q 1 X 1 1 X X 1 X X Figure 15 : Tableaux de Karnaugh pour la bascule 2 0. On en déduit bien sûr : J 0 = K 0 = 1 comme illustré en Figure 15. Q 0-12 -

Pour la bascule 2 1, on a une succession d'états qui conduit à la table de Karnaugh de la Figure 16. On obtient le résultat suivant: J = 1 Q0.Q 2 K = 1 Q0.Q2 Q 2 M 0 F 1 F 0 M 1 M 0 M 0 X X Q 0 Q 1 TP Logique Séquentielle - PeiP2 Les compteurs pour J 1 : Q 2 pour K 1 : 0 1 X X 0 0 X X Q 0 Q 1 X X 1 0 X X X X Q 0 Figure 16 : Tableaux de Karnaugh pour la bascule 2 1. Q 2 Q 1 Travail demandé a) On montrera de même que J 2 =Q 0.Q 1 et K 2 =Q 0. b) Dessiner le schéma de ce compteur. c) Le saisir sous QuartusII et tester son fonctionnement par simulation. - 13 -

Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis 3 - Registres à décalage & Machine à états finis 3.1 Objectifs Nous voulons réaliser un système complet permettant de commander un moteur pas à pas, en ayant la possibilité de faire varier la vitesse et le sens de rotation du moteur. La variation de la vitesse se fera à l aide d un diviseur de fréquence qui sera réalisé à l aide d un registre à décalage et de quelques portes logiques. Dans un registre à décalage, lorsque n cellules sont câblées en cascade, la fonction de décalage est celle qui permet, à chaque impulsion d'horloge, le glissement de l'information d'une cellule à la suivante. En général, on dispose (ou éventuellement on construit) de(s) registres dans lesquels on peut effectuer des décalages de la gauche vers la droite ou de la droite vers la gauche, et dans lesquels on peut, de plus, charger des données en parallèle dans les différentes cellules. Travail demandé Etudier le circuit IC74195 et expliquer leur fonctionnement en vous aidant de la documentation en section 3.5. 3.2 Diviseur de fréquence Soit un compteur synchrone dont la succession des états est donnée dans le Tableau 3. Il est possible de réaliser ce compteur à partir du circuit IC74195, pourvu que l'on remarque que ce registre est construit de telle façon que pour la bascule de rang n on ait J = K. De plus J sauf pour la première bascule. n = Q n 1 Travail demandé a) Faire la synthèse de ce compteur de 2 façons: d'une part, en utilisant la table d'excitation de la bascule, d'autre part, en effectuant une identification (ne pas faire pour J a et n K a ) Un exemple de chaque type de synthèse est donné dans la manipulation des compteurs synchrones. Remarque: pour N=16, il faut effectuer un chargement parallèle. N Tableau 3 : Table de transition du diviseur. états états N A B C D A B C D 16 1 1 1 1 8 1 0 1 0 15 0 1 1 1 7 0 1 0 1 14 1 0 1 1 6 0 0 1 0 13 1 1 0 1 5 0 0 0 1 12 0 1 1 0 4 0 0 0 0 11 0 0 1 1 3 1 0 0 0 10 1 0 0 1 2 1 1 0 0 9 0 1 0 0 1 1 1 1 0 n - 14 -

Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis Montrer alors que l'une des solutions à la synthèse de ce compteur est: J. a = K a = Qc Qd + Qa. Qb. Qc Qd ; J b Kb = Qa =, J c = Kc = Qb, J d = K d = Qc Cette solution a l'avantage d utiliser le circuit IC7195. b) La Figure 17 montre la réalisation d'un tel compteur utilisé en diviseur de fréquence. C'est à dire que si l'on applique sur l'entrée des données (DATA) un nombre de 4 bits, la fréquence du signal de sortie est égale à la fréquence de l'horloge divisée par N, N étant la valeur qui correspond au nombre de 4 bits introduit. Expliquer comment fonctionne ce diviseur de fréquence. c) Réaliser ce diviseur de fréquence sous QuartusII. Pour insérer le symbole IC74195, aller dans symbole, sélectionner «others maxplus2 IC74195». Ajouter des noms aux connexions Q0, Q1, Q2, Q3 et shift_load_n comme indiqué Figure 17. d) Tester son fonctionnement (période de Fin = 1ms) : - Reset pendant 5 ms - ABCD = 0000 pendant 100 ms - ABCD = 0100 pendant 100 ms Pensez à visualiser les signaux internes Q0, Q1, Q2, Q3 et shift_load_n. NOT NAND NOT XOR NAND NAND Q0 Q1 Q2 Q3 shift_load_n NOT F_in Entrée Reset_n J K Clock CLRN Q0 Q1 Q2 Q3 Sorties Parallèles IC74195 Entrées Parallèles D0 D1 D2 D3 Shift/Load NOT NOT NAND F_in_N Sortie F in N A B C D Figure 17 : Diviseur de fréquence. 3.3 La commande du moteur pas à pas Nous allons maintenant étudier la commande du moteur pas à pas (cf. Figure 18). Nous supposerons que le rotor a 4 positions stables I, II, III, IV, selon l état des interrupteurs alimentant les 4 enroulements de stator, le rotor étant un aimant à 2 pôles : le moteur avance d un pas à chaque étape en avant (I, II, III, IV), en arrière (IV, III, II, I). - 15 -

Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis arrière A B avant D C Travail demandé a) Recopier et remplir le tableau suivant : Figure 18 : Description du moteur pas à pas. Marche avant Marche arrière étape Rotor I1 I2 I3 I4 Rotor I1 I2 I3 I4 1 I IV b) Déterminer les fonctions (méthode des φ) le compteur synchrone qui permet de commander les quatre interrupteurs I1, I2, I3, I4 dans le sens de la marche avant (on utilisera des bascules JK). c) Déterminer les fonctions (méthode des φ) le compteur synchrone qui permet de commander les quatre interrupteurs I1, I2, I3, I4 dans le sens de la marche arrière (on utilisera des bascules JK). d) Réaliser le schéma global sous QuartusII (marche avant (question b) et arrière (question c)) en ajoutant un signal supplémentaire : E=1 pour la marche avant, E = 0 pour la marche arrière. e) Tester la sortie de la commande du moteur à l aide d une simulation. f) Réaliser le montage complet (cf. Figure 19) en utilisant le diviseur de fréquence de l exercice précédent dont la fréquence d entrée sera réglée à F in = 1000Hz. Pour cela, - Créer un nouveau projet - faite un copier/coller du schéma de l exercice du diviseur et de même pour le schéma du moteur pas à pas. g) Tester le montage complet - 16 -

Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis N (vitesse de rotation du moteur) D C B A E (marche avant/arrière) F in = 10 Hz Diviseur de fréquence F in /N Commande moteur pas à pas I1 I2 I3 I4 Figure 19 : Description fonctionnelle du montage pour la commande du moteur pas à pas. 3.4 Machine à état : Allumage d un téléphone portable Un bouton B sert à allumer un téléphone portable ayant une sortie S commandant l alimentation du téléphone. Le comportement est le suivant : 1. le téléphone est éteint. Si B est appuyé, le téléphone s allume (S=1) 2. Il reste allumé tant que B est appuyé 3. Il reste allumé si B est relâché. 4. Si B est appuyé de nouveau, le téléphone s éteint (S=0) 5. Il reste éteint tant que B est appuyé 6. Il reste éteint si B est relâché. Travail demandé a) Représenter la machine à état, b) Déterminer les équations simplifiées c) Réaliser le schéma sous QuartusII et tester le à l aide d un scénario. - 17 -

Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis 3.5 Annexe - Circuit 74195-18 -

- 19 - Logique Séquentielle - PeiP2 Registres à décalage & Machine à états finis