Exercices VHDL pour l évaluation



Documents pareils
Manipulations du laboratoire

Le langage VHDL. Eduardo Sanchez EPFL

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IFT1215 Introduction aux systèmes informatiques

Génie Logiciel avec Ada. 4 février 2013

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

VIII- Circuits séquentiels. Mémoires

SIN-FPGA DESCRIPTION PAR SCHEMA

Université de Bangui. Modélisons en UML

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

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

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Recherche dans un tableau

SUR MODULE CAMÉRA C38A (OV7620)

Logique séquentielle

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

Algorithmique et programmation : les bases (VBA) Corrigé

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

Organigramme / Algorigramme Dossier élève 1 SI

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Les fonctions logiques

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

Jeu d instructions NIOS II

OCL - Object Constraint Language

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

Contrôle d accès UTIL TP N 1 découverte

Les chaînes de caractères

Projet # 3 Serrure à deux clés

CM2 L architecture MIPS32

Solutions du chapitre 4

IFT2255 : Génie logiciel

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

QUESTION 1 {2 points}

Programmer en JAVA. par Tama

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Conception de circuits numériques et architecture des ordinateurs

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Informatique Générale

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Algorithmique & programmation

Définitions. Numéro à préciser. (Durée : )

Introduction à MATLAB R

Initiation à la Programmation en Logique avec SISCtus Prolog

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

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Projet Active Object

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

WEBVIEW. Serveur Web embarqué dans DIRIS G NOTICE D UTILISATION. com/webview_ software


Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Perl Orienté Objet BioPerl There is more than one way to do it

COACH-II Manuel d utilisation

CONFIGURATION DE L AUTOMATE SIEMENS

Licence Sciences et Technologies Examen janvier 2010

Chapitre VI- La validation de la composition.

IV- Comment fonctionne un ordinateur?

Conception des systèmes répartis

Les structures de données. Rajae El Ouazzani

Initiation à la programmation en Python

Algorithmique des Systèmes Répartis Protocoles de Communications

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Rappels d architecture

PIC EVAL Dev Board PIC18F97J60

Organisation des Ordinateurs

Cours de Génie Logiciel

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Microprocesseur + Logiciel

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

BACCALAURÉAT GÉNÉRAL SÉRIE SCIENTIFIQUE

UML (Diagramme de classes) Unified Modeling Language

Conversion d un entier. Méthode par soustraction

Rappels sur les suites - Algorithme

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

ACTIVITÉ DE PROGRAMMATION

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

STAGE IREM 0- Premiers pas en Python

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

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

Proteus Design Suite V7 Instruments virtuels

1 Recherche en table par balayage

Programme EcranTactile-01 MANUEL DE MISE EN ŒUVRE

V- Manipulations de nombres en binaire

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Algorithmique et Programmation, IMA

UE Programmation Impérative Licence 2ème Année

Corrigés des premiers exercices sur les classes

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Transcription:

Outils informatiques 25-26 Exercices VHDL pour l évaluation Alain Vachoux EPFL/STI-IMM-LSM alain.vachoux@epfl.ch Organisation des exercices Les informations sur l organisation des exercices se trouvent sur les pages web suivantes: http://lsm.epfl.ch/page12635-fr.html (description du cours + documents) http://moodle.epfl.ch/course/view.php?id=118 (Site web pour le rendu des exercices pour l'évaluation) Chaque étudiant inscrit au cours est prié de s enregistrer sur le site Moodle (2ème URL ci-dessus). Il faut utiliser votre identification GASPAR (nom d utilisateur et mot de passe) ainsi que la clé d identification "3nov5" (sans les guillemets). Ceci permettra de rendre les fichiers relatifs aux exercices et d obtenir des commentaires et les notes de l évaluation du module VHDL.

Outils informatiques 25-26 Exercices VHDL pour l évaluation - 2 Exercice 1: Décodeur pour affichage à 7 segments Il s agit de développer un modèle fonctionnel (comportemental) d un décodeur pour un affichage LED à 7 segments. SEG_A SEG_B SEG_C SEG_D SEG_E SEG_F SEG_G a 4 BCD(3:) e f d g c b BCD "1" a b c d e f g "1 1 1 1 1" Une entrée BCD de 4 bits codant un entier de à 9. Sept sorties de 1 bit SEG_A,..., SEG_G, une par segment, valant 1 si le segment correspondant doit être allumé et valant sinon. om d entité suggéré: dec7seg. Le comportement à décrire est purement combinatoire et doit réaliser la table de vérité du composant. Utiliser une instruction d affectation de signal sélective concurrente ou sa forme équivalente utilisant un processus (voir p. 59 du cours). om d architecture suggéré: bhv (pour "behaviour" - comportement). Le chiffre 9 peut être affiché avec les segments abcgf ou abcdgf à 1. Prévoir un affichage d erreur si le code BCD est incorrect. Le modèle de test doit tester toutes les entrées possibles en séquence. oms suggérés pour le modèle de test: tb_dec7seg (entité) et bench (architecture). Option: Les sorties peuvent être rassemblées dans un seul bus de 7 bits. Les indices du bus peuvent être des entiers (p.ex. 7 downto 1) ou des caractères (p.ex. a to g ). Définir une table de vérité dans un tableau constant. La table de vérité peut être utilisée dans l architecture du composant et dans le modèle de test. Il peut être nécessaire de déclarer la table de vérité dans un paquetage séparé qui est importé dans l architecture et le modèle de test (voir p. 89 du cours). Le paquetage est alors importé dans le modèle au moyen d une clause use (voir p. 19 du cours).

Outils informatiques 25-26 Exercices VHDL pour l évaluation - 3 Exercice 2: Compteur synchrone Il s agit de développer un modèle fonctionnel (comportemental) d un compteur synchrone générant une séquence de valeurs, 1, 2,..., 2-1, où est le nombre de bits du signal contenant la valeur du compteur. Une fois la valeur maximum atteinte, le compteur recommence à la valeur. Compteur COUT(-1:), 1, 2, 3,, 2-1,, 1, 2,... Entrées: Horloge (1 bit), reset (1 bit) actif au niveau bas ( ). Sortie: Valeur du compteur COUT ( bits). peut être une valeur fixe à choix ou un paramètre générique. Voir ci-dessous pour le choix du type. om d entité suggéré: counter. Pseudo-code à réaliser en VHDL: si reset actif alors COUT := sinon à chaque flanc d horloge faire: si COUT > valeur maximum alors COUT := sinon COUT := COUT + 1 Encapsuler le comportement ci-dessus dans un processus sensible sur les signaux et. Le reset est asynchrone (indépendant du flanc d horloge). La notation "(others => )" permet d initialiser un mot de taille quelconque à zéro. Il est interdit de lire la valeur d un signal d interface de mode out. Utiliser une variable locale au processus pour réaliser l incrémentation. Le type bit_vector ne supporte pas les opérations arithmétiques de manière prédéfinie, le type unsigned si (voir p. 96 du cours). om d architecture suggéré: bhv. Définir une horloge dont la période est définie par une constante (voir p. 53 du cours). Tester le comportement de reset (une impulsion 11) et le comportement normal. oms suggérés pour le modèle de test: tb_counter (entité) et bench (architecture). Options: Le modèle peut compter jusqu à une valeur fixée au choix ou définie dans un paramètre générique. Le flanc d horloge actif peut être le flanc montant ou le flanc descendant. Le test "COUT > valeur maximum" n est pas forcément nécessaire...

Outils informatiques 25-26 Exercices VHDL pour l évaluation - 4 Exercice 3: Registre série-parallèle Il s agit de développer un modèle structurel d un registre bits avec une entrée série et une sortie parallèle basé sur des composants flip-flops. DI D BIT(-1) D BIT(-2) D BIT(-3) D BIT(1) D BIT() DOUT(-1:) Entrées: Horloge (1 bit), reset (1 bit) actif au niveau bas ( ), données série DI (1 bit). Sortie: Contenu du registre DOUT ( bits). peut être une valeur fixe à choix ou un paramètre générique. om d entité suggéré: spreg. Structure (architecture): L architecture doit inclure instances de composants flip-flops dont le modèle de base est donné en p. 54 du cours. Le modèle de flip-flop doit inclure un comportement de reset synchrone du type: wait until clk = 1 ; if rst_b = then... else... Utiliser le mécanisme d instanciation directe pour décrire la structure du registre. om d architecture suggéré: str (pour "structure"). Définir une horloge dont la période est définie par une constante (voir p. 53 du cours). Tester le comportement de reset. Remplir le registre avec un mot de bits et le vider. oms suggérés pour le modèle de test: tb_spreg (entité) et bench (architecture). Options: Le modèle peut inclure un nombre fixe de flip-flops ou un nombre défini par un paramètre générique. Dans ce dernier cas, l usage d une instruction generate est requise (voir p. 78 du cours).

Outils informatiques 25-26 Exercices VHDL pour l évaluation - 5 Exercice 4: Registre à décalage programmable Il s agit de développer un modèle fonctionnel (comportemental) d un registre à décalage de bits pouvant subir des opérations de décalages ou de rotations sur un nombre quelconque de bits en un seul coup d horloge (on parle aussi de barrel shifter). 7 6 5 4 3 2 1 7 6 5 4 3 2 1 CMD SR DI(-1:) -1-2 1 DOUT(-1:) SHLL 1 ' ' SHLA 1 ' SHRL 1 ' SHRA 1 ROTL 1 ROTR 1 Entrées: Horloge (1 bit), reset (1 bit) actif au niveau bas ( ), commande CMD (type énuméré), nombre de bits affectés par la commande SR (entier ), données parallèle DI ( bits). peut être une valeur fixe à choix ou un paramètre générique. Les commandes doivent être codées par un type énuméré (voir p. 33 du cours) avec les conventions suivantes: LOAD: chargement de DI dans le registre. SHLL, SHRL: décalage logique à gauche, à droite. SHLA, SHRA: décalage arithmétique à gauche, à droite. ROTL, ROTR: rotation à gauche, à droite. Le type énuméré doit être déclaré dans un paquetage séparé (voir p. 89 du cours). Le paquetage est alors importé dans le modèle au moyen d une clause use (voir p. 19 du cours) juste avant l entité. Sortie: Contenu du registre DOUT ( bits). om d entité suggéré: barrelsr. Réaliser les opérations de décalages et de rotations au moyen de l opérateur de concaténation & (voir p. 36 du cours). Le contenu du registre peut être mémorisé dans un signal ou une variable. (Option) Définir chaque opération possible par une procédure (voir p. 81 du cours). (Option) Traiter SR < comme l opération symétrique (p.ex. SHLL -2 = SHRL 2). om d architecture suggéré: bhv. Vérifier les opérations modélisées au moyen des opérateurs de décalages et de rotations prédéfinis sll, srl, sla, sra, rol et ror (voir p. 36 du cours). Utiliser des assertions (voir p. 57 du cours). oms suggérés pour le modèle de test: tb_barrelsr (entité) et bench (architecture).