Jacques Weber Maurice Meaudre IUT. 2e CYCLE. ÉCOLES D'INGÉNIEURS Le langage VHD

Jacques Weber Maurice Meaudre IUT. 2e CYCLE. ÉCOLES D'INGÉNIEURS Le langage VHDl Cours et exercices 2e édition DUNOD Avant-propos à la seconde édition Depuis la première édition de cet ouvrage, en octobre 1997, l'intérêt de l'utilisation d'un langage évolué (VHDL ou Verilog) dans la modélisation et la conception des circuits intégrés n'a fait que se confirmer. Tous les fabricants de circuits logiques programmables, pour citer un exemple industriel, proposent des solutions qui font appel à ces langages. Leur introduction dans l'enseignement s'est donc révélé être un choix pertinent. La principale nouveauté des trois dernières années concerne l'extension de ces langages vers le monde des circuits analogiques et mixtes (analogiques et numériques). Nous n'avons pour l'instant pas pris en compte ces extensions pour plusieurs raisons: - Ces extensions concernent la modélisation des circuits, pas leur synthèse automa- tique (compilateurs de silicium); notre propos étant essentiellement les méthodes de conception des circuits numériques, l'extension analogique n'aurait fait qu'alourdir de façon importante la présentation d'un sujet déjà dense. - Les outils informatiques (compilateurs et simulateurs) associés sont, pour l'instant, peu nombreux et coûteux, leur utilisation dans l'enseignement est loin d'être une pratique courante. li ~ La première édition de cet ouvrage était accompagnée d'un CD-rom qui contenait ~ les exemples du livre. En accord avec l'éditeur nous avons pensé qu'il était plus ~ souple de renvoyer le lecteur intéressé à un site Internet: .~ http://perso.wanadoo.fr/jacques.weber/ 1 Ce site contient les programmes sources du livre, les énoncés des exercices avec ~ leurs corrigés et des liens vers les fournisseurs de logiciels de simulation. Les ] auteurs tiennent à remercier ici les étudiants de l'IUT de Cachan qui contribuent, au © cours de travaux de projets tutorés à alimenter le contenu de ce site. ~ § 5 ] Table des matières AVANT-PROPOS À LA SECONDE ÉDITION AVANT-PROPOS CHAPITRE 1 • MODÉLISATION ET SYNTHÈSE: LE MÊME LANGAGE 1.1 Simulation et synthèse 1.1.] Un langage commun ] .1.2 Tout n'est pas synthétisable ]. ].3 Simulation fonctionnelle 1.1.4 Du langage au circuit : la synthèse ] .1.5 Du circuit au langage: la modélisation 1.2 Portabilité 1.3 ] .2.] Indépendance vis-à-vis du circuit cible ] .2.2 Indépendance vis-à-vis du compilateur Un langage puissant 1.3.1 Construction hiérarchique 1.3.2 Description fonctionnelle ~ g CHAPITRE 2 • VHDL .~ i 2.1 Un préliminaire grammatical: le formalisme de Backus et Naur (BNF) 2.2 Premier aperçu j 1 2.2.1 L'exemple incontournable: une commande de feux tricolores 1 IQ) a) Ce que l'on veut obtenir b) Lafaçon de le réaliser v 5 6 6 7 8 8 10 11 11 11 12 12 l3 ]5 ]6 17 18 ]8 21 VI VHDL 2.2.2 Le couple entity architecture 24 a) La boîte noire: une entité 24 b) Son contenu: une architecture 27 2.2.3 Types et classes 30 a) Les types scalaires 32 b) Les types structurés 34 c) Pointeurs et fichiers 35 d) Constantes signaux et variables 36 e) Alias 40 2.2.4 Expressions 41 a) Opérateurs 41 b) Opérandes 43 2.2.5 Attributs 46 a) Attributs prédéfinis 47 b) Attributs définis par l'utilisateur 51 2.3 Parallélisme et algorithmes séquentiels 51 2.3.1 Le corps d'une architecture: le monde concurrent 53 a) Affectations de signaux 53 b) lnstanciation de composants 59 c) Modules de programme 61 2.3.2 Le corps d'un processus: le monde séquentiel 66 a) Une boucle sans fin contrôlée par des événements 67 b) Signaux et variables 68 c) Instructions séquentielles 71 2.3.3 Modélisation des opérateurs logiques combinatoires 75 a) Par des instructions concurrentes 75 b) Par un algorithme séquentiel 77 2.3.4 Modélisation des opérateurs séquentiels 78 a) Opérateurs synchrones et asynchrones 79 b) Machines d'états synchrones 83 2.4 Quelques pièges 91 2.4.1 Les mémoires cachées 92 a) Un compteur à maintien asynchrone 92 b) Les indices de l'anomalie 93 c) Les remèdes 94 2.4.2 Signaux et variables 96 a) Un générateur de parité fantaisiste 96 b) Variables et bascules 97 2.4.3 Les boucles 99 a) Des boucles non synthétisables 99 b) Des boucles inutiles 100 2.4.4 La complexité sous-jacente 101 a) Les opérations arithmétiques ou l'explosion combinatoire 102 b) Les horloges multiples 103 Table des matières VII 2.5 Programmation modulaire 104 2.5.1 Les sous-programmes : procédures et fonctions 104 a) Syntaxe 105 b) Surcharges de sous-programmes 110 2.5.2 Librairies et paquetages 112 a) Fichiers sources et unités de conception 113 b) La librairie work 116 c) La librairie std 116 d) La librairie IEEE et la portabilité des sources 117 2.6 Construction hiérarchique 119 2.6.1 Blocs externes et blocs internes 120 a) Localité des noms 120 b) Paramètres génériques 120 2.6.2 L'instruction generate 122 a) Boucles et tests dans l'univers concurrent 122 b) Instanciations multiples: des schémas algorithmiques 123 2.6.3 Configuration d'un projet 124 a) Spécification de la configuration d'un composant 125 b) Déclaration de configuration d'une entité 125 2.7 Modélisation et synthèse 128 2.7.1 Tout ce qui est synthétisable doit être simulable 128 2.7.2 La réciproque n'est pas vraie mais ... 128 a) Penser « circuit» 131 b) De l'ordre dans les horloges 131 2.7.3 Pilotes multiples et fonctions de résolution 132 a) Conflits 132 b) Sorties non standard (trois états et collecteurs ouverts) 135 c) Signaux gardés 136 2.7.4 Les paquetages de la librairie IEEE 136 a) Des types logiques simples multivalués 136 b) Des opérations prédéfinies 140 2.7.5 Des outils de simulation 141 a) Les fichiers 142 ~ b) Le traitement des fautes 148 c) La gestion du temps simulateur 150 § d) Les retards dans les circuits 151 l;l " 11 2.7.6 Rétroannotation 156 .~ a) Les modèles postsynthèse 158 ;1 g b) Vital 159 c: .~ 2.7.7 Construire un « test bench » 165 ~ a) Attention au mélange de genres 165 t b) Une boîte à outils 166 j c) Une configuration générale de test 173 1 ] d) Simulation en boucle fermée 176 © c) En matière de conclusion 186 VIII CHAPITRE 3 • LES CIRCUITS PROGRAMMABLES 3.1 Les grandes familles 3.2 Qu'est-ce qu'un circuit programmable? 3.2.1 Des opérateurs génériques a) Réseaux logiques programmables b) Multiplexeurs c) Ou exclusif d) Bascules 3.2.2 Des technologies a) Fusibles b) MOS à grille flottante c) Mémoires statiques d) Antifusibles 3.2.2 Des architectures a) Somme de produits b) Cellules universelles interconnectées c) Cellules d'entrée-sortie e) Placement et routage VHDL 187 188 190 190 190 192 194 195 195 195 197 198 199 199 199 200 201 202 3.2.4 Des techniques de programmation 202 a) Trois modes: fonctionnement normal, programmation et test 203 b) Programmables in situ 204 3.3 PLDs, CP LOs, FPGAs: Quel circuit choisir? 3.3.1 Critères de performances a) Puissance de calcul b) Vitesse de fonctionnement c) Consommation d) L'organisation PREP 3.3.2 Le rôle du « tiUer » a) « Mise à plat» ou logique multicouches? b) Surface ou vitesse c) Librairies de macro fonctions d) Le meilleur des compilateurs ne peut donner que ce que le circuit possède EXERCICES Annexes BIBLIOGRAPHIE INDEX 205 205 205 207 208 209 211 211 212 212 212 213 220 226 228 Avant-propos Au cours des vingt dernières années, les méthodes de conception des fonctions numériques ont subi une évolution importante. Dans les années soixante-dix, la majorité des applications de la logique câblée étaient construites autour de circuits intégrés standard, souvent pris dans la famille TIL. Au début des années quatre- vingt, apparurent, parallèlement, les premiers circuits programmables par l'utilisa- teur, du côté des circuits simples, et les circuits intégrés spécifiques (ASICs), pour les fonctions complexes fabriquées en grande série. La complexité de ces derniers a nécessité la création d'outils logiciels de haut niveau, qui sont à la description struc- turelle (schémas au niveau des portes élémentaires) ce que les langages évolués sont au langage machine dans le domaine de la programmation. À l'heure actuelle, l'écart de complexité entre circuits programmables et ASICs s'est restreint: on trouve une gamme continue de circuits qui vont des héritiers des premiers PALs (programmable array logic), équivalents de quelques centaines de portes, à des FPGAs (Field programmable gate array) ou des LCAs (Logic cell array) de plus de cent mille portes équivalentes. Les outils d'aide à la conception se sont unifiés; un même langage, VHDL par exemple, peut être employé, quels que soient les circuits :=i utilisés des PALs aux ASICs. :g § fi VHDL du langage au circuit, du circuit au langage est l'un des résultats de la j réflexion menée à l'IUT de Cachan: quelle évolution imprimer au contenu de il l'enseignement de l'électronique numérique, pour proposer aux étudiants une ~ formation en accord avec les méthodes de conceptions actuelles? 1 Nous associons étroitement l'apprentissage des bases de l'électronique et celui -::. des méthodes modernes de conception. VHDL est vu, dans cette optique, comme un ~ outil, abordé en annexe du cours d'électronique numérique. L'intérêt de cette ] approche est son caractère démystificateur: ce langage, réputé comme complexe, est © apprivoisé à travers les résultats du processus de synthèse. Une approche ascendante, 2 Avant-propos en quelque sorte. Au niveau IUT il est exclu d'étudier tous les aspects du langage. L'important volet de la modélisation est donc, à ce uploads/Ingenierie_Lourd/ dunod-le-langage-vhdl.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager