Écrire & Comprendre VHDL & AMS ©Jacques Rouillard 2008 ISBN 978-1-4092-3689-4 I

Écrire & Comprendre VHDL & AMS ©Jacques Rouillard 2008 ISBN 978-1-4092-3689-4 Imprimé en Espagne ou aux USA (USA si indiqué en dernière page) Lulu éditeur Illustration de couverture: Codex sur le vol des oiseaux Léonard de Vinci - 1485-1490 Écrire & Comprendre VHDL & AMS © J Rouillard 2008 Table des Matières -3- Table des Matières 1 CLÉS DE CE MANUEL............................................................................................................................. 7 1.1 OBJECTIF .............................................................................................................................................. 7 1.2 L’ORGANISATION DE CE MANUEL ......................................................................................................... 7 1.3 LES EXEMPLES DE CE MANUEL.............................................................................................................. 8 1.4 LES PAQUETAGES EN ANNEXE............................................................................................................... 8 1.5 LES OUTILS ........................................................................................................................................... 8 1.6 MÉTHODOLOGIES USUELLES................................................................................................................. 9 1.6.1 Conception descendante (Top-Down)............................................................................................. 9 1.6.2 Conception montante (Bottom-Up) ................................................................................................. 9 1.6.3 Conception montante-descendante (Meet-In-The-Middle).............................................................. 9 1.7 LES VERSIONS DES LANGAGES ET DE L’ENVIRONNEMENT................................................................... 10 1.7.1 Les versions des langages ............................................................................................................. 10 1.7.1.1 VHDL 7.2............................................................................................................................................ 10 1.7.1.2 VHDL 1076-1987................................................................................................................................ 10 1.7.1.3 VHDL 1076-1991 (Interprétations)..................................................................................................... 10 1.7.1.4 VHDL 1076-1993................................................................................................................................ 10 1.7.1.5 VHDL-AMS 1076.1-1999................................................................................................................... 11 1.7.1.6 VHDL 1076-2000................................................................................................................................ 11 1.7.1.7 VHDL 1076-2002................................................................................................................................ 11 1.7.1.8 VHDL-AMS 1076.1-2007................................................................................................................... 11 1.7.1.9 VHDL 1076-2008................................................................................................................................ 11 1.7.1.10 Portabilité entre versions..................................................................................................................... 12 1.7.2 Les types logiques ......................................................................................................................... 13 1.7.2.1 Deux états............................................................................................................................................ 13 1.7.2.2 Quatre états.......................................................................................................................................... 13 1.7.2.3 Six états............................................................................................................................................... 13 1.7.2.4 Neuf états ............................................................................................................................................ 13 1.7.2.5 Quarante six états ................................................................................................................................ 13 1.7.2.6 Le paquetage STD_LOGIC_ 1164...................................................................................................... 14 1.7.2.7 Interopérabilité .................................................................................................................................... 14 1.7.3 La maintenance du langage et des paquetages ............................................................................. 14 2 QUOI, OÙ, ZONES DÉCLARATIVES, ZONES D’INSTRUCTIONS ............................................... 17 2.1 LES UNITÉS DE COMPILATION ............................................................................................................. 17 2.1.1 La déclaration d’entité.................................................................................................................. 17 2.1.2 Le corps d’architecture................................................................................................................. 18 2.1.3 La déclaration de paquetage......................................................................................................... 19 2.1.4 Le corps de paquetage................................................................................................................... 19 2.1.5 La déclaration de configuration.................................................................................................... 19 2.2 LES INSTRUCTIONS À DÉCLARATIONS LOCALES .................................................................................. 20 2.2.1 Le bloc........................................................................................................................................... 20 2.2.2 Le processus.................................................................................................................................. 21 2.2.3 Le simultané procédural................................................................................................................ 22 2.2.4 Le type protégé (moniteur)............................................................................................................ 23 2.3 LES SOUS-PROGRAMMES..................................................................................................................... 23 2.3.1 Les arguments ............................................................................................................................... 24 2.3.2 La procédure................................................................................................................................. 24 2.3.3 La fonction .................................................................................................................................... 25 1 CLÉS DE CE MANUEL 2 QUOI, OÙ, ZONES DÉCLARATIVES, ZONES D’INSTRUCTIONS 3 ENVIRONNEMENT, BIBLIOTHÈQUES 4 HIÉRARCHIE ET STRUCTURE 5 MODÉLISATION DE BIBLIOTHÈQUES - VITAL 6 SYSTÈME 7 COMPORTEMENTAL 8 SYNCHRONE 9 ASYNCHRONE 10 SWITCH 11 ANALOGIQUE 12 RÉFÉRENCES 13 INDEX 14 TABLE DES FIGURES 15 BIBLIOGRAPHIE Écrire & Comprendre VHDL & AMS © J Rouillard 2008 Table des Matières -4- 3 ENVIRONNEMENT, BIBLIOTHÈQUES ............................................................................................. 27 4 HIÉRARCHIE ET STRUCTURE........................................................................................................... 29 4.1 LA GÉNÉRICITÉ ................................................................................................................................... 29 4.1.1 L'entité est générique, le composant est pareillement générique.................................................. 29 4.1.2 L'entité est générique, pas le composant....................................................................................... 30 4.1.3 L'entité est générique, le composant aussi mais moins ................................................................. 31 4.2 LES PORTS........................................................................................................................................... 31 4.2.1 L’ordre des ports........................................................................................................................... 32 4.2.2 Forçage......................................................................................................................................... 33 4.2.3 Laisser ouvert (open) .................................................................................................................... 33 4.2.4 Défaut............................................................................................................................................ 33 4.2.5 Changer le type ............................................................................................................................. 34 4.3 GÉNÉRIQUES ET GÉNÉRATION............................................................................................................. 35 4.4 AMUSANT ET INUTILE : LA HIÉRARCHIE RÉCURSIVE ........................................................................... 36 5 MODÉLISATION DE BIBLIOTHÈQUES - VITAL ............................................................................ 39 5.1 POURQUOI, COMMENT ?...................................................................................................................... 39 5.2 LE PAQUETAGE VITAL_TIMINGS....................................................................................................... 41 5.3 LE PAQUETAGE VITAL_PRIMITIVES .................................................................................................. 42 5.4 LE PAQUETAGE VITAL_MEMORY ..................................................................................................... 43 5.5 UN PETIT EXEMPLE ............................................................................................................................. 43 5.5.1 Sans les conventions VITAL .......................................................................................................... 43 5.5.1.1 Fonctionnalité...................................................................................................................................... 43 5.5.1.2 Délai simple et unique......................................................................................................................... 43 5.5.1.3 Délai dépendant des valeurs proposées ............................................................................................... 43 5.5.1.4 Délais dépendant des sens de variation................................................................................................ 44 5.5.1.5 Délais génériques ................................................................................................................................ 44 5.5.2 Avec les conventions VITAL.......................................................................................................... 44 5.5.2.1 Fonctionnalité...................................................................................................................................... 45 5.5.2.2 Délais dépendant des fronts................................................................................................................. 45 5.5.2.3 Processus VITAL ................................................................................................................................ 46 5.5.2.4 Etc… ................................................................................................................................................... 47 6 SYSTÈME.................................................................................................................................................. 49 6.1 ILLUSTRATION .................................................................................................................................... 49 6.2 FONCTION DE RÉSOLUTION ................................................................................................................. 50 6.3 GÉNÉRATEURS PSEUDO-ALÉATOIRES, VARIABLES PARTAGÉES........................................................... 51 6.4 PROTOCOLE ........................................................................................................................................ 52 6.5 TESTER ............................................................................................................................................... 54 7 COMPORTEMENTAL............................................................................................................................ 57 7.1 COMPORTEMENTAL NON SYNTHÉTISABLE .......................................................................................... 57 7.1.1 RAM .............................................................................................................................................. 57 7.1.2 Grande RAM : optimisation .......................................................................................................... 58 7.1.3 Très grande RAM : liste chaînée................................................................................................... 58 7.1.4 ROM.............................................................................................................................................. 59 7.1.4.1 Rom à initialisation par agrégat........................................................................................................... 60 7.1.4.2 Rom à initialisation par fichier............................................................................................................ 60 7.1.4.2.1 Fichier simple binaire..................................................................................................................... 61 7.1.4.2.2 Lecture d'un fichier au format INTEL............................................................................................ 62 7.2 COMPORTEMENTAL SYNTHÉTISABLE.................................................................................................. 68 7.2.1 Conversion parallèle série ............................................................................................................ 68 7.2.2 Drapeau HDLC............................................................................................................................. 69 7.3 MACHINES D'ÉTATS ............................................................................................................................ 72 7.3.1 Machine de Moore ........................................................................................................................ 72 7.3.2 Machine de Medvedev................................................................................................................... 74 7.3.3 Machine de Mealy......................................................................................................................... 74 7.3.4 Machine de Mealy synchronisée ................................................................................................... 76 7.3.5 Codage .......................................................................................................................................... 77 8 SYNCHRONE ........................................................................................................................................... 79 Écrire & Comprendre VHDL & AMS © J Rouillard 2008 Table des Matières -5- 8.1 BASCULES........................................................................................................................................... 79 8.1.1 Bascule D ...................................................................................................................................... 79 8.1.2 Latch.............................................................................................................................................. 80 8.1.3 Bascule RS..................................................................................................................................... 80 8.1.4 Bascule JK..................................................................................................................................... 81 8.2 COMBINATOIRE SYNCHRONISÉ ........................................................................................................... 81 8.3 GÉNÉRATEUR DE SÉQUENCES PSEUDO-ALÉATOIRES ........................................................................... 83 8.4 BLOCS GARDÉS................................................................................................................................... 85 9 ASYNCHRONE......................................................................................................................................... 87 9.1 ASYNCHRONE INONDANT, LE FLOT-DE-DONNÉES (DATA-FLOW) ........................................................ 87 9.1.1 L’affectation simple : un fil ou un registre.................................................................................... 87 9.1.2 L'affectation conditionnelle: un encodeur de priorité................................................................... 87 9.1.3 L'affectation sélectée: un multiplexeur.......................................................................................... 88 9.1.4 L’appel concurrent de procédure : un processus avec des arguments.......................................... 89 9.2 ASYNCHRONE PROTOCOLAIRE ............................................................................................................ 89 9.2.1 Handshake..................................................................................................................................... 89 9.2.2 Reconstitution d’un signal codé NRZ et de son horloge ............................................................... 90 10 SWITCH..................................................................................................................................................... 95 10.1 UN MODÈLE DE SWITCH ...................................................................................................................... 95 10.2 UN « OU EXCLUSIF » EN SWITCH......................................................................................................... 97 11 ANALOGIQUE ......................................................................................................................................... 99 11.1 OBJETS, INSTRUCTIONS, CONTRAINTES, DOMAINES ............................................................................ 99 11.1.1 Concepts et Objets : nature, quantité, terminal........................................................................ 99 11.1.2 Instructions............................................................................................................................. 101 11.1.3 Conditions d’exécution et de solvabilité : .............................................................................. 101 11.1.4 Les domaines d’exécution....................................................................................................... 102 11.2 ÉLÉMENTS DE BASE .......................................................................................................................... 102 11.2.1 Résistance............................................................................................................................... 102 11.2.2 Résistance thermique.............................................................................................................. 103 11.2.3 Capacité ................................................................................................................................. 103 11.2.4 Self.......................................................................................................................................... 104 11.2.5 Source de tension.................................................................................................................... 105 11.2.6 Source de courant................................................................................................................... 105 11.2.7 Interrupteur ............................................................................................................................ 106 11.2.8 Diode...................................................................................................................................... 106 11.2.9 Amplificateur opérationnel idéal............................................................................................ 107 11.2.10 Un modèle mécanique: Tac-Tac............................................................................................. 108 11.3 MODÉLISATION MIXTE...................................................................................................................... 109 11.3.1 Convertisseur digital/analogique ........................................................................................... 109 11.3.1.1 Réseau R/2R, structurel..................................................................................................................... 109 11.3.1.2 Convertisseur Digital-Analogique, comportemental ......................................................................... 111 11.3.2 Convertisseur Analogique-Digital.......................................................................................... 111 11.3.2.1 Comparateur...................................................................................................................................... 112 11.3.2.2 Proposer des valeurs (modèle purement digital)................................................................................ 112 11.3.2.3 Assemblage du convertisseur : modèle structurel mixe analogique/digital ....................................... 114 12 RÉFÉRENCES ........................................................................................................................................ 117 12.1 STANDARD ET UTILES ....................................................................................................................... 117 12.1.1 STD.STANDARD.................................................................................................................... 117 12.1.2 STD.TEXTIO .......................................................................................................................... 119 12.1.3 STD_LOGIC_TEXTIO ........................................................................................................... 120 12.2 IEEE................................................................................................................................................. 121 12.2.1 IEEE.STD_LOGIC_1164 ....................................................................................................... 121 12.2.2 IEEE.STD_LOGIC_ARITH.................................................................................................... 123 12.2.3 IEEE.MATH_REAL................................................................................................................ 126 12.3 IEEE-VITAL.................................................................................................................................... 127 12.3.1 BNF Vital................................................................................................................................ 127 12.3.2 VITAL_TIMING...................................................................................................................... 130 Écrire & Comprendre VHDL & AMS © J Rouillard 2008 Table des Matières -6- 12.3.3 VITAL_Primitives................................................................................................................... 135 12.3.4 VITAL_MEMORY................................................................................................................... 143 12.4 ANALOGIQUE.................................................................................................................................... 153 12.4.1 [AMS]IEEE.FUNDAMENTAL_CONSTANTS ....................................................................... 153 12.4.2 [AMS] DISCIPLINES.ELECTRICAL_SYSTEMS................................................................... 154 13 INDEX...................................................................................................................................................... 157 14 TABLES DES FIGURES........................................................................................................................ 161 15 BIBLIOGRAPHIE .................................................................................................................................. 163 AIDE-MÉMOIRE VHDL ................................................................................................................................ 167 Écrire & Comprendre VHDL & AMS © J Rouillard 2008 Clés de ce manuel -7- 1 Clés de ce manuel 1.1 Objectif Ce petit manuel ambitionne de présenter les différentes techniques de modélisation en VHDL, avec des exemples paradigmatiques, en présentant les concepts et techniques liés à VHDL mais en faisant délibérément l’impasse sur la présentation en détail du langage : le lecteur aura donc besoin d’une connaissance préalable ou d’un autre manuel, par exemple le compagnon de celui-ci « Lire & Comprendre VHDL & AMS qui au contraire parle du langage et non des modèles, et qui est organisé par traits du langage et non par style d’application. Un aide mémoire de 12 pages est à la fin de ce manuel, que l’on pourra découper et agrafer. Il est aussi disponible en pdf. (Voir bibliographie [ROU1] et [ROU2], chapitre15 page 161) 1.2 L’organisation de ce manuel Après une présentation des questions qui transcendent tous les styles (organisation générale du langage chapitre 2, bibliothèques chapitre 3, hiérarchie chapitre 4), les chapitres étudient sur des exemples ad-hoc les niveaux de modélisation qu’on peut attaquer en VHDL : depuis le niveau système, avec l’exemple d’un réseau comportant une centaine de transmetteurs, jusqu’au niveau analogique où l’on s’intéresse au composant lui-même. Les niveaux décrits sont :  La modélisation d'éléments de bibliothèque, utilisant le standard VITAL. C'est une modélisation qui est techniquement surtout structurelle, mais qui utilise des conventions très serrées permettant de rétro-annoter les modèles après synthèse, c'est-à-dire d'y insérer des délais de transmission très proches de la réalité, sans avoir à ouvrir les modèles qui se servent de ces briques. Chapitre 5.  Système : niveau où l’on s’intéresse à des abstractions, le temps n’est intéressant qu’en termes de causalité. On simule des systèmes qui représenteront à la fin une très grande quantité de matériel et de logiciel, on fait des statistiques et on envoie des vecteurs de test basés sur des séquences aléatoires. La simulation n’est pas déterministe. Chapitre 6.  Comportemental : on valide des algorithmes, dont on peut ne pas savoir encore s’ils seront implémentés en logiciel ou matériel. On peut aussi écrire des briques qu’on ne réalisera jamais –elles existent déjà ou sont l’objet d’un contrat-, simplement pour faire fonctionner le reste du modèle. Chapitre 7.  Synchrone : le temps est mesuré en termes de coups d’horloge. Le circuit est un assemblage de blocs ayant la même horloge ; C’est un niveau extrêmement efficace en termes de simulation. Chapitre 8.  Asynchrone : le circuit est décrit, in fine, en termes d’équations logiques et le plus généralement les objets manipulés sont de type binaire ou entier se résolvant en codage binaire. On y traite aussi des questions de protocole qui sont en général uploads/Philosophie/ ecrire-vhdl-et-ams.pdf

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