INF3500 Conception et réalisation de systèmes numériques Pierre Langlois Départ
INF3500 Conception et réalisation de systèmes numériques Pierre Langlois Département de génie informatique et génie logiciel École Polytechnique de Montréal Juillet 2013 Cette création est mise à disposition selon le Contrat Paternité-Pas d'Utilisation Commerciale-Partage des Conditions Initiales à l'Identique 2.5 Canada (http://creativecommons.org/licenses/by-nc-sa/2.5/ca/), sauf pour les images dont les sources et notices de copyright sont indiquées explicitement, et pour lesquelles les détenteurs originaux des copyrights conservent tous leurs droits. Table des matières INF3500 : Conception et réalisation de systèmes numériques i v. 2.5, juillet 2013 Table des matières Chapitre 1 Introduction ........................................................................................................................... 1 1.1 Systèmes numériques et systèmes analogiques ............................................................................. 1 1.2 Niveaux d’abstraction des systèmes numériques .......................................................................... 2 1.3 Implémentation des systèmes numériques .................................................................................... 2 Chapitre 2 Description de circuits numériques avec VHDL .................................................................. 5 2.1 Langages de description matérielle ............................................................................................... 5 2.2 Entités et architectures .................................................................................................................. 5 2.3 Trois styles de description du comportement d’un circuit ............................................................ 8 2.4 Modélisation d’éléments à mémoire en VHDL .......................................................................... 13 2.5 Quelques détails du langage VHDL ............................................................................................ 16 2.6 Exercices ..................................................................................................................................... 24 Chapitre 3 Technologies de logique programmable ............................................................................. 27 3.1 Circuits SSI, MSI et LSI ............................................................................................................. 27 3.2 Mémoires mortes programmables : PROM, EPROM, EEPROM .............................................. 28 3.3 Réseaux logiques programmables : PLA, PAL et GAL ............................................................. 30 3.4 Circuits logiques programmables complexes (CPLD) ................................................................ 34 3.5 Réseaux pré-diffusés programmables (FPGA) ........................................................................... 35 3.6 Comparaison d’équivalences en termes de portes logiques ........................................................ 43 3.7 Technologies de programmation pour logique programmable ................................................... 43 3.8 Exercices ..................................................................................................................................... 49 Chapitre 4 Flot de conception d’un circuit numérique ......................................................................... 51 4.1 Décomposition architecturale ..................................................................................................... 51 4.2 Vue d’ensemble du flot de conception ........................................................................................ 52 4.3 Description : code HDL, schémas, diagrammes d’état, etc. ....................................................... 52 4.4 Simulation fonctionnelle d’un modèle VHDL ............................................................................ 53 4.5 Synthèse ...................................................................................................................................... 53 4.6 Implémentation ........................................................................................................................... 56 4.7 Extraction de métriques et annotation des délais ........................................................................ 57 Table des matières INF3500 : Conception et réalisation de systèmes numériques ii v. 2.5, juillet 2013 4.8 Génération du fichier de configuration et programmation .......................................................... 58 4.9 Exercices ..................................................................................................................................... 59 Chapitre 5 Conception de chemins des données ................................................................................... 61 5.1 Les processeurs ........................................................................................................................... 61 5.2 Approche RTL : principes et notation ......................................................................................... 62 5.3 Modules combinatoires utilisés dans les chemins des données .................................................. 64 5.4 Éléments à mémoire pour chemins des données ......................................................................... 69 5.5 Unités fonctionnelles .................................................................................................................. 76 5.6 Exercices ..................................................................................................................................... 81 Chapitre 6 Conception d’unités de contrôle ......................................................................................... 83 6.1 Circuits séquentiels ..................................................................................................................... 83 6.2 Analyse d’un circuit séquentiel synchrone ................................................................................. 84 6.3 Description de machines à états en VHDL ................................................................................. 85 6.4 Conception de machines à états .................................................................................................. 91 6.5 Retour sur la conception de processeurs et l’approche RTL ....................................................... 95 6.6 Exemple de processeur à usage spécifique: multiplicateur série ................................................ 96 6.7 Exemple : joueur de blackjack .................................................................................................. 101 6.8 Exercices ................................................................................................................................... 106 Chapitre 7 Vérification de circuits numériques .................................................................................. 109 7.1 Concepts fondamentaux ............................................................................................................ 109 7.2 Banc d’essai de base et clause after ...................................................................................... 110 7.3 Simulation d’un modèle VHDL ................................................................................................ 111 7.4 Vecteurs de test encodés dans un tableau de constantes ........................................................... 112 7.5 Génération algorithmique de vecteurs de test ........................................................................... 113 7.6 Observation et évaluation des réponses : assertions ................................................................. 115 7.7 Entrées et sorties par fichiers .................................................................................................... 118 7.8 Utilisation de configurations en VHDL .......................................................................... 121 7.9 Instanciation directe d’une entité .............................................................................................. 121 7.10 Vérification d’un circuit séquentiel synchrone par banc d’essai ............................................... 122 Table des matières INF3500 : Conception et réalisation de systèmes numériques iii v. 2.5, juillet 2013 7.11 Élaboration d’un plan de test .................................................................................................... 124 7.12 Composition d’un ensemble de vecteurs de test ....................................................................... 126 7.13 Concepts avancés de vérification .............................................................................................. 130 7.14 Exercices ................................................................................................................................... 131 Chapitre 8 Considérations pratiques ................................................................................................... 133 8.1 Introduction ............................................................................................................................... 133 8.2 Paramètres de synchronisation .................................................................................................. 133 8.3 Fréquence maximale d’opération et chemin critique ................................................................ 135 8.4 Le déphasage d’horloge ............................................................................................................ 136 8.5 Synchronisation entre domaines d’horloge différents ............................................................... 137 8.6 Optimisation d’un design pour la surface ou le débit ............................................................... 137 8.7 Génération de signaux d’horloge .............................................................................................. 142 8.8 Conception et implémentation pour FPGA ............................................................................... 144 8.9 Documentation de systèmes numériques .................................................................................. 145 8.10 Quelques principes importants en conception numérique ........................................................ 146 8.11 Exercices ................................................................................................................................... 147 Chapitre 9 Conception et réalisation de processeurs à usage général ................................................. 149 9.1 Introduction ............................................................................................................................... 149 9.2 Chemin des données d’un processeur à usage général .............................................................. 150 9.3 L’unité de contrôle .................................................................................................................... 157 9.4 Exemple de programme ............................................................................................................ 163 9.5 Accélération d’un processeur .................................................................................................... 163 9.6 Exercices ................................................................................................................................... 164 Chapitre 10 Annexe : Revue des systèmes numériques ........................................................................ 167 10.1 Variables booléennes ................................................................................................................ 167 10.2 Fonctions booléennes, symboles et tables de vérité .................................................................. 167 10.3 Algèbre booléenne .................................................................................................................... 169 10.4 Formes canoniques et expansion en mintermes et maxtermes .................................................. 169 10.5 Simplification d’expressions booléennes à l’aide de tables de Karnaugh ................................ 170 Table des matières INF3500 : Conception et réalisation de systèmes numériques iv v. 2.5, juillet 2013 10.6 Autres fonctions logiques.......................................................................................................... 172 10.7 Délais et chronogrammes .......................................................................................................... 173 10.8 Codes numériques et alphanumériques ..................................................................................... 174 10.9 Éléments à mémoire de base ..................................................................................................... 176 Bibliographie............................................................................................................................................. 181 INF3500 : Conception et réalisation de systèmes numériques 1 v. 2.42, décembre 2009 Chapitre 1 Introduction 1.1 Systèmes numériques et systèmes analogiques Par « numérique », on veut dire « discret ». Par « analogique » on veut dire « continu ». Les systèmes numériques nous entourent. Quelques exemples de systèmes numériques dans la vie de tous les jours sont : les téléphones intelligents, les baladeurs, les caméras numériques, les ordinateurs, les cal- culatrices et les montres électroniques. Un système numérique traite de l’information sous forme discrète, c'est-à-dire qui peut prendre un nombre fini de valeurs ou d’états différents. Cependant, les systèmes numériques doivent souvent traiter de l’information venant de leur environnement. Dans la plupart des cas, cette information est analogique à la base, c'est-à-dire qu’elle est continue en grandeur et qu’elle peut varier de façon continue dans le temps et dans l’espace. Voici quelques exemples de phénomènes continus : la voix, la musique, les impulsions d’un sonar et autres sons, qui sont en fait des variations de pres- sion dans un matériel solide, liquide ou gazeux; les signaux électriques provenant du cerveau ou du cœur; les phénomènes naturels : la température de l’air, la pression atmosphérique, la vitesse et la direction du vent, le débit d’une rivière; la position et l’attitude d’un corps dans l’espace; les images et les vidéos; et, les signaux de communication et de radar (signaux en radiofréquences). Voici quelques exemples de phénomènes discrets : le nombre de personnes dans une salle; le solde d’un compte bancaire; un arbre généalogique; et, l’ensemble des cours d’un programme universitaire. En général, on convertit les signaux de nature non-électrique en signaux électriques, et vice-versa, à l’aide d’un transducteur comme un microphone, un haut-parleur, une caméra numérique, un écran d’ordinateur, une antenne, un thermomètre électronique, un indicateur de débit ou un accéléromètre. Ensuite, on mesure l’intensité électrique correspondant au phénomène ou à la quantité physique pour en indiquer la valeur à un moment précis. Finalement, on convertit cette intensité électrique en un nombre pouvant être traité par le système numérique. Ce processus s’appelle la numérisation d’un signal. Le traitement effectué sur l’information numérisée peut inclure : la compression d’une image; la reconnaissance ou la synthèse de la parole; la transmission d’information dans un réseau; et, la confirmation de l’identité d’une personne selon des caractéristiques biométriques. On retrouve ces applications dans la vie de tous les jours. Chapitre 1: Introduction INF3500 : Conception et réalisation de systèmes numériques 2 v. 2.5, juillet 2013 Depuis 1945 environ, les systèmes numériques ont progressivement remplacé la plupart des systèmes analogiques, pour les raisons suivantes : la fiabilité accrue due à l’indépendance aux variations de température, de tension d’alimentation et de temps; la possibilité de transmettre et reproduire l’information de façon exacte; la flexibilité de conception et la facilité de fabrication; la baisse des coûts et de la taille, et l’augmentation de la fréquence d’opération. 1.2 Niveaux d’abstraction des systèmes numériques On peut identifier trois niveaux d’abstraction pour les systèmes numériques : le niveau système: microprocesseur, mémoire, unités d’entrée-sortie, bus; le niveau des portes logiques: les portes de base (ET, OU, NON, etc.), les circuits combinatoires (multiplexeurs, encodeurs, additionneurs, multiplicateurs, etc.), et les éléments à mémoire (bascules et loquets); et, le niveau des circuits: transistors, diodes, résistances, condensateurs et inductances. Le cours INF3500 concerne principalement le niveau des portes logiques et, dans une moindre mesure, celui du système. 1.3 Implémentation des systèmes numériques 1.3.1 Considérations d’implémentation Il y a quatre considérations fondamentales pour l’implémentation d’un système numérique. Leurs impor- tances relatives dépendent grandement de l’application visée, alors elles sont présentées ici en ordre al- phabétique : La précision des calculs: La précision requise pour les calculs effectués est dictée par la bande dyna- mique des signaux à traiter. Par exemple, en téléphonie, la voix est numérisée avec 8 bits, donnant 256 niveaux possibles. Sur un CD audio, cependant, uploads/Philosophie/ inf3500notesdecoursv2-5-pdf.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 20, 2022
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 2.7977MB