Institut national polytechnique de Lorraine école nationale supérieure d électricité et de mécanique ISA 2A. Compteur décimal. Electronique numérique



Documents pareils
SIN-FPGA DESCRIPTION PAR SCHEMA

VIII- Circuits séquentiels. Mémoires

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Manipulations du laboratoire

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

Description du logiciel Modbus RTU

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

IFT1215 Introduction aux systèmes informatiques

Proteus Design Suite V7 Instruments virtuels

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

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

SUR MODULE CAMÉRA C38A (OV7620)

VTP. LAN Switching and Wireless Chapitre 4

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

Compléments de documentation Scilab : affichage de texte et formatage de nombres

AMBUS IS Collecteur d impulsions M-Bus

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Série D65/D75/D72 Afficheurs digitaux modulaires

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Conception de circuits numériques et architecture des ordinateurs

Modules d automatismes simples

ASR1 TD7 : Un microprocesseur RISC 16 bits

Représentation d un entier en base b

QUESTION 1 {2 points}

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

IV- Comment fonctionne un ordinateur?

Présentation et installation PCE-LOG V4 1-5

Fiche technique CPU 314SC/DPM (314-6CG13)

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

TP Modulation Démodulation BPSK

Carte Relais GSM (Manuel Utilisateur)

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

LOGICIEL DC4D MONITOR

Manuel d utilisation. Thermomètre d'enregistrement de données à trois canaux Modèle SD200

La programmation des PIC en C. Les fonctions, les interruptions.

Configuration de TCPIPconfig.h

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

SCL LOGICIEL DE CONTROL

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

Les fonctions logiques

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

COACH-II Manuel d utilisation

EL70x1 en mode position. Mise en œuvre rapide. VERSION : Beta / DATE : 31 Juillet 2011

Projet # 3 Serrure à deux clés

ELP 304 : Électronique Numérique. Cours 1 Introduction

crm+ capteurs à ultrasons Extrait de notre catalogue en ligne : Mise à jour :

Centrales de mesures. CENTRALES DE MESURES Nemo. A.6 Guide de choix. A.14 4 Modules. A.20 Encastré 72x72. A.24 Encastré 96x96. A.

TEPZZ A_T EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 ( ) G06K 19/077 (2006.

Mentions légales (non traduites) Introduction Légendes Schémas de raccordement Configuration de la S16...

Logiciels DSPiy. DSPiyStudio logiciels et format des fichiers. incomplet

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1 MANUEL SIMPLIFIE DE L UTILISATEUR 20/03/14

Lecteur de carte à puce LCPM1 SOMMAIRE

Informatique Générale

Gamme caméra FA. Les caméras RICOH pour l industrie : Série FV. Caméras: RICOH FV Serie. GigE Vision. Camera Link. 2 Megapixel.

0 20mV; 0 40mV; 0 80mV; 0 160mV; 0 320mV; 0 640mV; 0 1,28V; 0 2,56V 0 5V; 0 10V

Once the installation is complete, you can delete the temporary Zip files..

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

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

Sécurité et Firewall

Wobe.

MANUEL D INSTRUCTION

Le multiplexage. Sommaire

Conférence sur les microcontroleurs.

Décision d'approbation de modèle n du 1 er février 2000

Architecture des ordinateurs Introduction à l informatique

Exercices sur SQL server 2000

Projet de synthèse de l'électronique analogique : réalisation d'une balance à jauges de contrainte

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

COURS BARDON - EXCEL 2010

Modes Opératoires WinTrans Mai 13 ~ 1 ~

DimNet Gradateurs Numériques Evolués Compulite. CompuDim 2000

MACHINE A SOUDER MANUEL D UTILISATION

Microprocesseur + Logiciel

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

GUIDE DE PRISE EN MAIN ISIS PROTEUS V7

MANUEL D UTILISATION PRO-FACE

Logique séquentielle

Organisation des Ordinateurs

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Millenium3 Atelier de programmation

WIFI-DMX INTERFACE AUTONOME V 1.5.0

Chapitre 4 : Les mémoires

Enregistreur de données d humidité et de température

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

Animation pédagogique sur l oscilloscope à mémoire Hameg HM 507

Architecture : Circuits numériques et éléments d architecture

AP1.1 : Montages électroniques élémentaires. Électricité et électronique

Ordinateurs, Structure et Applications

PIC EVAL Dev Board PIC18F97J60

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Une version javascript sera disponible directement dans le cours prochainement.

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

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

Débuter avec PsoC ou PsoC niveau 0

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Transcription:

Institut national polytechnique de Lorraine école nationale supérieure d électricité et de mécanique ISA 2A Compteur décimal Electronique numérique TP 1 Ghania Idiri Tomáš Novák 26 novembre 2007 1

Compteur décimal 2 1 Sujet Implantez dans un FPGA Flex10K EPF10K70RC240-4 un circuit du compteur décimal dont l état sera visualisé à l aide d un décodeur 7 segments. Le circuit possède deux entrées à savoir : Le bouton PB1 (pin 28) permettra d incrémenter le compteur Le bouton PB2 (pin 29) permettra de remettre le compteur à zéro. Dans le tableau 1 il y a l assignement des pins d afficheur LED 7 seg. segment a b c d e f g aff 1 6 7 8 9 11 12 13 aff 2 17 18 19 20 21 23 24 Tab. 1 Assignement des pins 1.1 Compteur à un chiffre Proposez une description Verilog du compteur décimal, Proposez une description Verilog du circuit de commande de l afficheur 7 segments Réalisez une description en schématique du circuit complet compteur-afficheur Téléchargez votre description sur la carte cible, testez votre circuit Implantez un système anti-rebonds 1.2 Compteur à deux ciffres Réalisez un compteur décimal à deux chiffres. 2 Solution 2.1 Compteur à un chiffre On peut séparer une solution entre plusieurs modules (fig. 1). Fig. 1 Hierarchie d une solution 2.1.1 Compteur 0..9 Premier module est un compteur décimal. Ce module a une sortie et deux entres. Pour compter 0..9 il faut utiliser un registre 4b. Un reset va être asynchrone, avec chaque montée d horloge on va tester la valeur d un registre du compteur. Si cette valeur égale à 9, on va effacer le registre, sinon on va incrémenter cette valeur.

Compteur décimal 3 1 module counter(clk,rst,s); input clk; //define ports input rst; output[3:0] s; 5 reg[3:0] s; always @ (posedge clk or negedge rst) if (!rst) //asyn rst 10 s <= 0; else //rising edge of clk if(s==9) //overflow s <= 4 b0; else //increment 15 s <= s+1; module La simulation de ce module se trouve sur la figure 2. Fig. 2 Simulation d un compteur 2.1.2 Décodeur Deuxième module est un décodeur 4bit 7seg (figure 3). C est un circuit combinatoire facile. Pour simplification on représente une goupe de sept 1-bit valeurs pour un 7seg afficheur par une valeur hexadécimal, compris aussi un bit pour un point décimal. On suppose que des segments sont actives dans 1 c est plus démonstratif (tab.2). Comme sortie de ce module on utilise sept ports à un bit, alors on assigne à chaque sortie un bit correspondant, mais inversé (en effet des segments sont actifs à 0 ). Fig. 3 Affichage 7seg Le code verilog quel décrire ce module décodeur est suivant :

Compteur décimal 4 a b c d e f g. val. hex 0 1 1 1 1 1 1 0 0 0xFC 1 0 1 1 0 0 0 0 0 0x60 2 1 1 0 1 1 0 1 0 0xDA 3 1 1 1 1 0 0 1 0 0xF2 4 0 1 1 0 0 1 1 0 0x66 5 1 0 1 1 0 1 1 0 0xB6 6 1 0 1 1 1 1 1 0 0xBE 7 1 1 1 0 0 1 0 0 0xE4 8 1 1 1 1 1 1 1 0 0xFE 9 1 1 1 1 0 1 1 0 0xF6 Tab. 2 Look-Up table pour décodeur 1 module decoder(val,a,b,c,d,e,f,g); input[3:0] val; // binary value output a,b,c,d,e,f,g; //outputs for 7seg 5 reg[7:0] disp; //7 seg in one byte - easier to write assign a=~disp[7]; //assign inversed bit assign b=~disp[6]; // (segments active at 0 ) assign c=~disp[5]; assign d=~disp[4]; 10 assign e=~disp[3]; assign f=~disp[2]; assign g=~disp[1]; always @(val) //Look-Up table 15 case(val) 0: disp=8 hfc; 1: disp=8 h60; 2: disp=8 hda; 3: disp=8 hf2; 20 4: disp=8 h66; 5: disp=8 hb6; 6: disp=8 hbe; 7: disp=8 he4; 8: disp=8 hfe; 25 9: disp=8 hf6; default: disp=8 h0; //always default value!! case module 2.1.3 Compteur-afficheur Pour connecter les deux modules précédents de la manière graphique il faut générer des fichiers pour editor schématique (file create default symbol). Après on peut connecter des blocks et assigner correspondants pins pour entrées et sorties. On voit un schéma dans une figure 1. Si on télécharge un résultat dans FPGA, on voit que la fonction n est pas correcte. Si on appuie le bouton PB1, la valeur affichée va être incrémentée aléatoirement. Ce problème est ammène par des rebonds des contacts d un bouton. Il faut connecteur un condensateur en parallèle de bouton, ou trouver d autre solution dans un circuit créé. Dans la prochaine section on va s occuper d un circuit anti-rebonds dans un FPGA.

Compteur décimal 5 2.1.4 Système anti-rebonds Pour éviter l effet des rebonds de boutons il faut mémoriser des valeurs logiques d une sortie d un bouton pant certain temps. On peut par exemple utiliser un registre à décalage de 4 bits. Chaque 10 ms on ajoute la valeur actuelle de la sortie d un bouton et on décale le contenu du registre. Si tous les bits dans ce registre ont la même valeur, la sotie de ce circuit anti-rebonds pr cette valeur, sinon la sortie reste inchangée. On a seulement une source d une horloge 25,125 MHz qui est disponible. Pour obtenir l horloge 100 Hz on ne peut pas dans aucun cas utiliser facilement compteur connecté au série entre l horloge 25,125 MHz et circuit anti-rebonds (vois [1, 2]). Pour faire des circuits dans FPGA, il faut nécessairement suivre des règles pour un design synchrone. Dans un FPGA il y a le réseau spécial pour livraison d horloge, des circuits PPL pour synchroniser des fréquences etc. Si on utilise comme une source d horloge une sortie d un circuit dans un FPGA, le circuit final n est pas synchrone! Une solution vraiment synchrone exige utilisation d un signal clock enable. Alors on va générer le signal clk en avec une fréquence 100Hz. Pour faire ça, il faut utiliser un compteur de 18 bits, parce que 25125000Hz 100Hz = 251250 = 0x3D572. Ce signal autorise un décalage dans un registre anti-rebonds. On peut mettre les deux sous-circuits, une source d un signal clk en et régistre d un décalage, dans un même module. 1 module antirebond(clk, pb, pbd); input clk, pb; //clk & button output pbd; //output reg without glimmers reg pbd; 5 reg[17:0] counter; //clock divider reg[3:0] shreg; //shif register reg clk_en; //clock enable for shifter (synchronous design!!!!) 10 always @(posedge clk) //divider clk //12,125M / 100=0x3D572 if(counter==18 h3d571) //==2 for simulation counter <= 18 h0; 15 clk_en <= 1; else counter <= counter + 1; clk_en <=0; 20 always @(posedge clk) //shift register 25 if(clk_en) shreg[3:0]={pb,shreg[3:1]}; //shift & add new value if(&shreg) //shreg contains all ones pbd <= 1; else if(( shreg)==0) //shreg contains all zeros 30 pbd <= 0; // else no change pbd module

Compteur décimal 6 Pour effectuer une simulation d une circuit anti-rebonds on change la valeur dans un condition if(counter==18 h3d571) if(counter==2). Sur la figure 4 on voit un résultat. Fig. 4 Simulation d une circuit anti-rebonds On a testé le compteur avec ce circuit dans un FPGA. On peut constater que la solution est correcte. 2.2 Compteur décimal 0..99 Pour créer un circuit d un compteur 0..99 on utilise la même approche que pour un compteur d un chiffre. Il faut seulement créer une nouvelle description Verilog d un compteur à deux chiffres ; le circuit anti-rebonds et le décodeur hex 7bit restent les mêmes. Compteur à deux chiffres est une expansion du module précédent. On ajoute le deuxième registre pour mémoriser une valeur de deuxième chiffre (en effet c est une valeur des dizaines). La valeur de deuxième chiffre est incrémentée lorsque la valeur du premier chiffre change 9 0. 1 //double decimal counter module counter2(clk,rst,s1,s2); input clk; 5 input rst; output[3:0] s1,s2; reg[3:0] s1,s2; //registers for two decimal values always @(posedge clk or negedge rst) 10 if (!rst) //async reset s1 <= 0; s2 <= 0; 15 else // rising_egde of clock if(s1==9) //reset s1 & inc s2 s1 <= 4 b0; if(s2==9) //is it possible inc s2? 20 s2 <= 0; //no -> reset else s2 <= s2 + 1; else 25 s1 <= s1 + 1; module //yes -> inc //only increment s1

Compteur décimal 7 On attache des blocks encore en manière graphique comment montré sur la figure 5. Fig. 5 Schéma du compteur à deux chiffres 3 Conclusion On a créé une description d un circuit de compteur décimal avec afficheur 7 segments. Le compteur est créé comme un circuit séquentiel (mais not synchrone, cette approche est utilisable

Compteur décimal 8 seulement pour des circuits simples), un décodeur pour afficheur est un circuit combinatoire. La sortie de décodeur contient des «spikes», mais ça n a pas de conséquence effective. Des segments d afficheur et aussi des yeux d observateur ont dynamique qui filtre ces très courtes variations. Lorsque la sortie de boutons utilisés n est pas filtrée par un condensateur, il fallait créer un module qui empêche l influence des rebonds. Ce module est correctement synchrone. On a agrandi le compteur créé et on a fait une description complète d un compteur à deux chiffres. Ce circuit est aussi équipé avec le système anti-rebonds. Après une simulation on a fait la synthèse, processus place&route pour le FPGA disponible et on a testé ce circuit dans un FPGA. On peut constater que le circuit fonctionne correctement. Références [1] Pong P. Chu. RTL Hardware Design Using VHDL. Wiley-Interscience, 2006. [2] Salcic Z., Smailagic A. Digital Systems design And Prototyping. Kluwer Adademic Publishers, 2000