Composants logiques programmables et VHDL

Documents pareils
Le langage VHDL. Eduardo Sanchez EPFL

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

IFT1215 Introduction aux systèmes informatiques

Algèbre binaire et Circuits logiques ( )

Système binaire. Algèbre booléenne

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Manipulations du laboratoire

SIN-FPGA DESCRIPTION PAR SCHEMA

QUESTION 1 {2 points}

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

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

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Concevoir son microprocesseur

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Conception de circuits numériques et architecture des ordinateurs

ASR1 TD7 : Un microprocesseur RISC 16 bits

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Organisation des Ordinateurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

MPI Activité.10 : Logique binaire Portes logiques

Université de La Rochelle. Réseaux TD n 6

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

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

Représentation d un entier en base b

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

Qualité du logiciel: Méthodes de test

Les fonctions logiques

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

Compilation (INF 564)

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

Présentation du PL/SQL


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

Ordonnancement temps réel

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

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Cours Informatique Master STEP

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Licence Sciences et Technologies Examen janvier 2010

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Transmissions série et parallèle

Introduction à MATLAB R

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

Architecture des ordinateurs

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

Logique séquentielle

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

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

RESUME DE COURS ET CAHIER D'EXERCICES

2.4 Représentation graphique, tableau de Karnaugh

Informatique Générale

VIII- Circuits séquentiels. Mémoires

IV- Comment fonctionne un ordinateur?

Les BRMS Business Rules Management System. Groupe GENITECH

Algorithmique et Programmation, IMA

Diagramme de classes

UE C avancé cours 1: introduction et révisions

Conception de circuits numériques et architecture des ordinateurs

Problèmes liés à la concurrence

TP Modulation Démodulation BPSK

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Rappels d architecture

Recherche dans un tableau

Cours d algorithmique pour la classe de 2nde

BCI - TPSP - Processeurs et Architectures Numériques

Les diagrammes de modélisation

Conversion d un entier. Méthode par soustraction

I- Définitions des signaux.

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Initiation à la programmation en Python

Organigramme / Algorigramme Dossier élève 1 SI

2 Comment fonctionne un ordinateur, dans les grandes lignes

STAGE IREM 0- Premiers pas en Python

Corrigé des TD 1 à 5

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

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Cours Bases de données 2ème année IUT

Le langage C. Introduction, guide de reference

CM2 L architecture MIPS32

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

Chapitre 1 : Introduction aux bases de données

Systèmes et traitement parallèles

Nouveautés CRM 2015 & Migration. By Tanguy Touzard MVP CRM

Cours de Génie Logiciel

Algorithmique & programmation

Logiciel Libre Cours 3 Fondements: Génie Logiciel

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Chapitre 4 : Les mémoires

Transcription:

Composants logiques programmables et VHDL Sylvain MONTAGNY sylvain.montagny@univ-savoie.fr Bâtiment chablais, bureau 13 04 79 75 86 86 Retrouver tous les documents de Cours/TD/TP sur le site www.master-electronique.com Université de Savoie

Présentation cours : Sommaire Cours : 10.5 h en 7 séances Chapitre 1 : Caractéristiques des circuits logiques Chapitre 2 : Les systèmes logiques Chapitre 3 : Synthèse de systèmes logiques combinatoires Chapitre 4 : Synthèse de systèmes logiques séquentiels Chapitre 5 : Les composants logiques programmables Chapitre 6 : Description en VHDL Université de Savoie 2

Présentation TD TD : 10.5 h en 7 séances TD1 : Synthèse logique combinatoire, caractéristiques électriques des portes logiques TD2 : Synthèses de circuits logiques séquentiels à l aide de graphe d état TD3 : Composant logique programmable TD4 : Description de fonctions logiques à l aide du langage VHDL TD5 : Synthèse d un système de communication série en VHDL Université de Savoie 3

Présentation TP TP : 12h en 3 séances de 4h TP1 : Synthèse d un système logique combinatoire dans l environnement ALTERA. TP2 : Synthèse d un système logique séquentielle TP3 : Synthèse d un mini projet séquentiel Université de Savoie 4

Examen Un contrôle continu : 1h Un contrôle final : 1h 75% Une note de travaux pratiques 25% Université de Savoie 5

Chapitre 1 : Caractéristiques des circuits logiques 1.1 Niveaux logiques et gabarits 1.2 Caractéristiques des composants logiques 1.3 Exemple d une datasheet Université de Savoie 6

Niveaux logiques et gabarits Niveaux logiques Les niveaux logiques sont décrits par des tensions v I v O Niveau Potentiel de sortie Potentiel d entrée Logique Positive H V OH V IH 1 L V OL V IL 0 On exprime une fonction de transfert en tension (caractéristique de transfert) donnant une relation entre V I et V O. Université de Savoie 7

Exemple : caractéristique d un inverseur Université de Savoie 8

Exemple : caractéristique d un inverseur Fonction de transfert de l inverseur : (courbe idéalisée) V O V OH V OH min V OL max V OL V OHmin : Tension minimale fournie par la sortie à l état HAUT V OLmax : Tension maximale fournie par la sortie à l état BAS V ILmax : Tension maximale reconnue comme un niveau BAS en entrée. V IHmin : Tension minimale reconnue comme un niveau HAUT par l entrée V I V ILmax V IH min Université de Savoie 9

Niveaux logiques et gabarits Notion de gabarit Le gabarit est valable pour TOUTE la FAMILLE logique V O Si 0 < V I < V IL max alors V O > V OH min V OH min V OL max Si V IH min < V I < V max alors V O < V OLmax Si V ILmax < V I < V IH min Pas de fonctionnement garanti V I V ILmax V IH min Université de Savoie 10

Niveaux logiques et gabarits Immunité au bruit (1) Immunité : Tension parasite (bruit) que l on peut ajouter au signal tout en conservant un fonctionnement normal + V I = V O +V B + V O V B V I VB représente le bruit Université de Savoie 11

Sortie du 1 er circuit Entrée du 2 ème circuit Marge de bruit

Niveaux logiques et gabarits Immunité au bruit (2) Le respect des gabarits lors de la mise en cascade implique : V OH min > V IH min et V OL max < V IL max On défini donc la marge de bruit : MB =Min( V OH min -V IH min ; V IL max -V OL max ) Université de Savoie 13

Niveaux logiques et gabarits Niveaux logiques CMOS et TTL 5 V 3,5 V 1 V IH 5 V 4,4 V V OH 1,5V 5 V 5 V 0 V 0 V IL 0,33 V 0 V V OL 2 V V IH 2,4 V V OH 3,3 V 2 V Entrée 1 CMOS 5V V IH 3,3 V 2,4 V Sortie V OH 0,8V 0 V Entrée V IL 0,4 V 0 V TTL Sortie V OL 0,8 V 0 V 0 V IL 0,4 V 0 V V OL Entrée CMOS 3.3V Sortie 14

Chapitre 1 : Caractéristiques des circuits logiques 1.1 Niveaux logiques et gabarits 1.2 Caractéristiques des composants logiques 1.3 Exemple d une datasheet Université de Savoie 15

Caractéristiques des composants logiques Sortance C est le nombre maximum d entrées de porte logique que la sortie d une porte peut piloter. Ceci s entend pour des portes d une famille attaquant des portes de la même famille. La sortance doit s exprimer dans chacun des deux états HAUT et BAS. Exemple : Sortance : I OHmax = 400 µa I IHmax = 40 µa I OLmax = -20 ma I ILmax = -1,6mA au niveau haut : 10 au niveau bas : 12,5 Cette sortie peut piloter correctement 10 entrées unitaires câblées en parallèle. 16

Caractéristiques des composants logiques Temps de commutation De 10% à 90% du niveau haut établi Tr : Rising Time Tf : Falling Time 90% 90% 10% 10% T r t f Université de Savoie 17

Caractéristiques des composants logiques Temps de propagation C est le temps de réponse de la sortie logique sur une modification d une des entrées. 1 v I (t) t v I (t) v O (t) v O (t) t tp LH tp HL tp LH : temps de propagation de l état bas à l état haut. tp HL : temps de propagation de l état haut à l état bas. Université de Savoie 18

Chapitre 1 : Caractéristiques des circuits logiques 1.1 Niveaux logiques et gabarits 1.2 Caractéristiques des composants logiques 1.3 Exemple d une datasheet Université de Savoie 19

Exemple sur datasheet 74F153 20

Exemple sur datasheet 74F153 Université de Savoie 21

Retrouver les gabarits d entrée et de sortie Calculer la marge de bruit de ce composant logique Calculer la sortance Retrouver le temps de propagation Retrouver le temps de commutation

Chapitre 2 : Les systèmes logiques 2.1 Équation et représentation graphique 2.2 Système logique combinatoire 2.3 Système logique séquentiel Université de Savoie 25

Équation et représentation graphique Equation logique Un système logique est décrit par des équations logiques définissant la valeur des sorties. Les équations logiques sont formalisées par l algèbre binaire (algèbre de Boole) Université de Savoie 26

Propriétés (1) de ET,OU,NON Commutativité a+b = b+a a.b = b.a Associativité a+(b+c) = (a+b)+c a.(b.c) = (a.b).c Distributivité a.(b+c) = a.b+a.c a+(b.c) = (a+b).(a+c) Idempotence a+a = a a.a = a Absorption a+a.b = a a.(a+b) = a Involution a = a On garde la hiérarchie classique (. est prioritaire sur +) a + (b.c) = a + b.c!= (a + b). c Université de Savoie 27

Propriétés (2) de ET,OU,NON Elément neutre a+0 = a a.1 = a Elément absorbant a+1 =1 a.0 = 0 Inverse a+a = 1 a.a = 0 Théorème de DE Morgan a+b = a. b a.b = a + b Théorème du Consensus a.x+b.x+a.b = a.x+b.x (a+x)(b+x)(a+b)=(a+x)(b+x) Université de Savoie 28

Équation et représentation graphique Norme française a b & ET s a b & NAND s a NON s a b >1 s a b >1 s a b =1 s OU NOR XOR Nb : La représentation française est utilisée en symboles logiques Norme ANSI/IEEE Std: 91-1984 : Standard Graphic Symbols for Logic Functions Université de Savoie 29

Équation et représentation graphique Norme américaine a b ET s a b NAND s a a s NON s a b OU s a b NOR s a b XOR Nb : La norme américaine est la norme utilisée dans les «datasheets» pour dessiner les graphes (schémas) logiques. s Université de Savoie 30

Chapitre 2 : Les systèmes logiques 2.1 Équation et représentation graphique 2.2 Système logique combinatoire 2.3 Système logique séquentiel Université de Savoie 31

Système logique combinatoire Définition Dans un système logique combinatoire les sorties ne dépendent que des entrées Combinatoire : S = f booléenne (a,b,c,..,n) Tous changements dans les signaux appliqués aux entrées se propage immédiatement à travers les portes jusqu à ce que leurs effets apparaissent aux sorties. Université de Savoie 32

Système logique combinatoire Exemple I i Logique S j = f booléenne (I i ) combinatoire Exemple de système combinatoire : Quelles sont les entrées et les sorties de ce système? Université de Savoie 33

Système logique combinatoire Les composants combinatoires Au catalogue des fournisseurs Portes intégrés et inverseurs (Gates) Multiplexeur / démultiplexeur Codeurs / Décodeurs Transcodeurs Comparateurs / Détections d erreurs Circuits arithmétiques (add, ALU, mult) Université de Savoie 34

Chapitre 2 : Les systèmes logiques 2.1 Équation et représentation graphique 2.2 Système logique combinatoire 2.3 Système logique séquentiel Université de Savoie 35

Système logique séquentiel Définition Les sorties dépendent : De l état présent du système (machine de Moore) De l état présent et des entrées du système (machine de Meally) L état futur dépend Des entrées et de l état présent du système Université de Savoie 36

Système logique séquentiel Exemple Exemple de système séquentiel : Quelles sont les entrées et les sorties de ce système? Définir les différents états possibles du système. Université de Savoie 37

Système logique séquentiel Logique asynchrone Asynchrone signifie que les états du systèmes évoluent à tout moment dès qu une entrée est modifiée. Exemple : la bascule RS R 0 0 1 S 0 1 0 Q t Q Q Q Q t+ Q 1 0 Fonction Mémoire Mise à 1 Mise à 0 Effet mémoire : spécificité des systèmes séquentiels Interdit Université de Savoie 38

Système logique séquentiel Logique synchrone Synchrone signifie que les états du système sont réévalués seulement lors d un front d horloge. Il y a donc un effet mémoire pendant une période d horloge. Exemple : La bascule D Horloge Q D Q Université de Savoie 39

Chapitre 3 : Synthèse de systèmes logiques combinatoires 3.1 Synthèse d un additionneur et d un multiplexeur 3.2 Les aléas dans les systèmes combinatoires Université de Savoie 40

Synthèse de systèmes logiques combinatoires 1. Détermination des entrées et des sorties du système. 2. Détermination de la table de vérité 3. Détermination de l équation logique (tableau de Karnaugh, simplification avec l Algèbre de Boole ) 4. Réalisation à l aide de circuits logiques Université de Savoie 41

Exemple (1) Synthèse d un additionneur 1 bit Addition de deux opérandes 1 bits avec une retenue a b R i ADD S R o Réaliser la synthèse logique de l additionneur 1 bit et retrouver les équations logiques suivantes S = a b R i R = a. b + a. Ri + b. o R i Nombre de portes? Temps de propagation? Université de Savoie 42

Exemple (2) Synthèse d un multiplexeur Sélection d une voie parmi 2 N grâce à N bits de commande Si (S 1 S 0 ) 2 =00 alors Q = I 0 I 0 I 1 I 2 I 3 Mux 4 vers 1 Q Q = S S. 1. 0 I O Si (S 1 S 0 ) 2 =01 alors Q = I 1 Q = S. S I etc 1 0. 1 S 1 S 0 Réaliser la synthèse logique du multiplexeur 4 vers 1 Université de Savoie 43

Multiplexeur (constitution) Q = S. S. I + S. S. I + S. S. I + S. S. I 1 0 0 1 0 1 1 0 2 1 0 3 I 0 & I 1 I 2 I 3 & & >1 Q S1 S 0 & Université de Savoie 44

Exemple sur datasheet du multiplexeur 74F153 Vérifier la cohérence de votre table de vérité avec celle de la datasheet Université de Savoie 45

Chapitre 3 : Synthèse de systèmes logiques combinatoires 3.1 Synthèse d un additionneur et d un multiplexeur 3.2 Les aléas dans les systèmes combinatoires Université de Savoie 47

Les aléas dans les circuits combinatoires Les aléas ou «glitch» sont des états instables d un signal juste après que les signaux dont il dépend est été modifié. A priori, toute fonction logique combinatoire synthétisée est susceptible de provoquer des aléas puisque : Toutes les entrées ne changent pas d état exactement au même moment. La cascade de cellules logiques peut induire des états intermédiaires instables. Université de Savoie 48

Synthèse sans aléas M DC 00 01 11 10 BA 00 0 0 1 1 01 1 1 1 1 11 1 1 0 0 10 0 0 0 0 M = D. B D. A 1 + 3 portes 4 termes 7 signaux M DC 00 01 11 10 BA 00 0 0 1 1 01 1 1 1 1 11 1 1 0 0 10 0 0 0 0 M = D. B + D. A B. A 2 + 4 portes 6 termes 10 signaux Cas ou B et A = 1 Université de Savoie 49

Chapitre 4 : Synthèse de systèmes logiques séquentiels 4.1 Schéma général d un système séquentiel 4.2 Description par graphe d état 4.2 Méthodologie de synthèse : Exemple d un distributeur de boisson Université de Savoie 50

Schéma général d un système séquentiel Les sorties dépendent : De l état présent du système (machine de Moore) De l état présent et des entrées du système (machine de Meally) L état futur dépend Des entrées et de l état présent du système Université de Savoie 51

Schéma général d un système séquentiel La présence de registre nous donne une «fonction mémoire» de l état actuel. Cet état actuel est déterminant pour le calcul de l état suivant du système. On représente l évolution du système séquentiel par un graphe d état. Université de Savoie 52

Chapitre 4 : Synthèse de systèmes logiques séquentiels 4.1 Schéma général d un système séquentiel 4.2 Description par graphe d état 4.2 Méthodologie de synthèse : Exemple d un distributeur de boisson Université de Savoie 53

Description par graphe d état Définition (1) Définition : Un diagramme ou graphe d états permet d avoir une représentation graphique d un système séquentiel. Il est constitué par l énumération de tous les états possible du système. Un seul de ces états peut être actif à la fois. A chaque état est associé la valeur de la (ou des) grandeur(s) de sortie. Transition Etat 1 2 s=1 s=0 Valeur de la ou des sorties dans l'état Université de Savoie 54

Description par graphe d état Définition (2) Les états sont identifiés par des cercles, avec leur nom et/ou leur code binaire associé écrit dans le cercle. Les transitions entre les états sont identifiées par des flèches entre les cercles. Les conditions pour toutes transitions (les valeurs nécessaires de variables d entrée) sont placées à côté des flèches de transition. Exemple : Graphe d état synchrone d une Bascule D D=1 D=0 1 2 Q=0 Q=1 D=1 D H Q D=0 Université de Savoie 55

Chapitre 4 : Synthèse de systèmes logiques séquentiels 4.1 Schéma général d un système séquentiel 4.2 Description par graphe d état 4.2 Méthodologie de synthèse : Exemple d un distributeur de boisson Université de Savoie 56

Méthodologie de synthèse Système séquentiel 1. Interprétation : Définir les entrées et les sorties du système, interpréter les descriptions ambiguës. 2. Graphe : Représenter le fonctionnement par un graphe d états 3. Tableau : Représenter le tableau de transition des états 4. Codage des états : Déterminer le nombre de bascules nécessaires et associer les états aux combinaisons de sortie des bascules 5. Equation : Choisir une architecture et le type de bascules. Déterminer les équations de sorties du système et les équations des états. Université de Savoie 57

Méthodologie de synthèse Exemple : Distributeur de boissons Cahier des charges Le distributeur délivre une boisson après que l on ait inséré 0,3 dans le monnayeur. On ne peut insérer que des pièces de 0,2 et de 0,1. Deux capteurs identifient le type de pièces insérées. Une fois le montant acquitté, une commande actionne une gâche électrique qui libère une boisson. Université de Savoie 58

Méthodologie de synthèse 1- Interprétation Définition des Entrées sorties 2 entrées : u : Pièce de 0,2 c : Pièce de 0,1 1 sortie O : Commande d ouverture de la gâche Cas ambigües : Cas ou la somme est supérieure à 0,3? Ce distributeur ne rend pas la monnaie Monnayeur u c Distributeur o Gâche raz H Université de Savoie 59

Méthodologie de synthèse 2- Graphe d état Université de Savoie 60

Méthodologie de synthèse 3- Tableau de transition des états C est une table de vérité constitué : en entrée de l état actuel du registre d état des entrées de la machine à états en sortie de l état futur du registre d état des sorties de la machine à états Université de Savoie 61

Méthodologie de synthèse 3- Tableau de transition des états Table des transitions non codée Entrée Sorties Etat courant Entrée (uc) Etat futur Sortie (o) E0 00 E0 0 01 E1 0 10 E2 0 11 X X E1 00 E1 0 01 E2 0 10 E3 0 11 X X E2 00 E2 0 01 E3 0 10 E3 0 11 X X E3 XX E0 1 62

Méthodologie de synthèse 4- Codage des états Nombre de bascules en fonction du nombre d états Choix de la combinaison des sorties des bascules qui codera chaque état Élaboration de la table de transitions des états codés 4 états 2 bascules Etat Code (Q1Q0) E0 00 E1 01 E2 10 E3 11 Table des transitions codée Etat courant (Q1Q0) Entrée (uc) Etat futur (D1D0) Sortie (o) 00 00 0 00 01 01 0 10 10 0 11 XX X 00 01 0 01 01 10 0 10 11 0 11 XX X 00 10 0 10 01 11 0 10 11 0 11 XX X 11 XX 00 1 63

Méthodologie de synthèse 5- Implémentation Choix d un type de bascules Déterminations des équations logiques des entrées des bascules D0 uc Q1Q0 00 01 11 10 00 0 1 X 0 01 1 0 X 1 11 0 0 X 0 10 0 1 X 1 D1 uc Q1Q0 00 01 11 10 00 0 0 X 1 01 0 1 X 1 11 0 0 X 0 10 1 1 X 1 D 0 = Q 0. c + Q 1. Q 0. c + Q 1. Q 0. u D 1 = Q 1. u + Q 1. Q 0 + Q 1. Q 0. c Université de Savoie 64

Méthodologie de synthèse 5- Implémentation Déterminations des équations logiques des sorties o Q0 Q1 0 1 0 0 0 1 0 1 o = Q 1.Q 0 >>Dessiner le schéma complet (bascules et portes logiques) de notre système Université de Savoie 65

Chapitre 5 : Les composants logiques programmables 5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs Université de Savoie 66

Structure des PLD La structure de base de ces composants programmables sont des réseaux ET et OU permettant de réaliser n importe quelle fonctions logiques. a b c Matrice ET Matrice OU Sorties 1 s 2 3 4 Université de Savoie 67

Structure des PLD Structure interne a b c d Matrice OU programmable Matrice ET programmable s 1 s 2 s 3 s 4 68

Structure des PLD Cette structure interne nous permet pour l instant de traiter que les équations logiques combinatoires. Pour les équations séquentielles, il faut insérer une bascule et un rebouclage de la sortie vers les entrées. Université de Savoie 69

Structure des PLD DEUX MODES DE SORTIE : COMBINATOIRE ET SÉQUENTIEL OU : Sommes ET : Produits Sortie Université de Savoie 70

Structure des PLD Macrocellule de sortie (1) MODE COMBINATOIRE On multiplexe la sortie directe ou complémentée du ET-OU ET OU Université de Savoie 71

Structure des PLD Macrocellule de sortie (2) MODE SÉQUENTIEL On multiplexe la sortie inversée ou non inversée de la bascule D Université de Savoie 72

PAL22V10

Chapitre 5 : Les composants logique programmables 5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs Université de Savoie 74

Structure des CPLD E/S Les CPLDs regroupent plusieurs PLD interconnectés par un réseau de connexions programmables. Les CPLDs sont les prémisses des premiers FPGAs. Ces circuits tendent à être remplacés par les FPGAs. PLD PLD PIM Programmable Interconect Matrix PLD PLD E/S Université de Savoie 75

Structure des CPLD Chaque bloc logique représente un PLD. Chaque PLD est composé d un certain nombre de macrocellules Équivaut à Université de Savoie 77

Un bloc logique et ses macrocellules Université de Savoie 78

Structure des CPLD Une macrocellule Université de Savoie 79

Chapitre 5 : Les composants logiques programmables 5.1 Structure des PLD 5.2 Structure des CPLD 5.3 Structure des FPGA & ASICs Université de Savoie 80

Structure des FPGA & ASICs Field Programmable Gate Array Université de Savoie 81

Structure des FPGA & ASICs AVANTAGES Possibilité de prototypage Time-to-market faible Adaptabilité aux futurs évolutions grâce à la reconfiguration INCONVENIENTS intégration limité par les ressources de routage prix à l unité élevé pour de grosses productions Université de Savoie 82

Université de Savoie 83

Les ASIC Application-Specific Integrated Circuits. Les ASIC fournissent précisément la fonctionnalité nécessaire pour une tâche spécifique. Cela leur permet d'être : plus petits, moins chers, plus rapide, De consommer moins de puissance qu'un processeur programmable (tel un Intel Pentium IV). Exemple : Une puce graphique faite sur mesure pour un PC peut tracer des images 10 à 100 fois plus rapidement qu'un processeur central à usage générique. Université de Savoie 84

Structure des FPGA & ASICs Conclusion Le choix entre FPGA ou ASIC, se fait en fonction du cahier des charges de l application Temps de mise sur le marché et durée de vie courte Très petit nombre de circuits >>> FPGA Optimisation des performances Grande série >>> ASIC Université de Savoie 85

Chapitre 6 : Description en VHDL 6.1 Présentation du langage VHDL 6.2 La partie ENTITY 6.3 La partie ARCHITECTURE 6.4 La description en VHDL Université de Savoie 86

Présentation du langage VHDL La description matériel Le langage VHDL (Very High level Description Language) est, comme son nom l indique, un langage de description matériel. Il ressemble fortement à un langage informatique (PASCAL, C). Il faut toutefois garder à l esprit que l objectif de la description est la synthèse de fonctions numérique à l aide de circuit PLD, FPGA ou ASIC. Pour cela il est important de connaître le circuit «cible» si on veut mener à bien cette synthèse. Université de Savoie 87

Présentation du langage VHDL Particularités La différence essentielle avec un langage informatique est la simultanéité des actions décrites. Pour cela il faudra se familiariser avec la notion : d instruction concurrente (simultanée) d instruction séquentielle. Par défaut toutes les instructions sont concurrentes, pour qu elles soient séquentielles il faut qu elles apparaissent dans un zone particulière appelée : process. Université de Savoie 88

Présentation du langage VHDL Objectifs Décrire un système combinatoire ou séquentiel en VHDL Comprendre comment le VHDL va synthétiser le système et l intégrer dans un composant programmable PLD, CPLD ou FPGA. Université de Savoie 89

Présentation du langage VHDL Structure d un fichier VHDL Université de Savoie 90

Présentation du langage VHDL La description La description VHDL consiste en une définition d un bloc ENTITY et d une définition d un bloc ARCHITECTURE. ENTITY est la description physique des entrées/sorties du système ARCHITECTURE est la description du comportement du bloc ENTITY ENTITY and2 IS PORT ( a,b : IN std_logic; f: OUT std_logic); END and2; ARCHITECTURE behavioral OF and2 IS BEGIN f <= a AND b; END behavioral; =>Dessiner l architecture représentée par la description VHDL ci-contre Université de Savoie 91

Présentation du langage VHDL Description VHDL Vue externe (entity) A B Cin Vue interne (architecture) A B Cin Additionneur (Boite noir) S Cout S Cout Université de Savoie 92

Chapitre 6 : Description en VHDL 6.1 Présentation du langage VHDL 6.2 La partie ENTITY 6.3 La partie ARCHITECTURE 6.4 La description en VHDL Université de Savoie 93

La partie ENTITY Exemple La partie ENTITY décrit les Entrées / Sorties rst d[7:0] clk q[7:0] co ENTITY black_box IS PORT ( clk, rst: IN std_logic; d: IN std_logic_vector(7 DOWNTO 0); q: OUT std_logic_vector(7 DOWNTO 0); co: OUT std_logic); END black_box; Université de Savoie 94

La partie ENTITY Port Modes La direction du port est indiquée de la façon suivante: IN Entrée de du système OUT Sortie du système INOUT Entrée et sortie du système (bidirectionnel) Université de Savoie 95

La partie ENTITY Exercice (1) Ecrire l entité d un additionneur Add4 de deux mots, a et b, de 4 bits en entrée, avec une retenue entrante ci, et une sortie somme sur 4 bits avec une retenue sortante co. a b ci 4 4 Add4 4 somme co Université de Savoie 96

La partie ENTITY Exercice (2) Ecrire l entité correspondante au schéma de ce multiplexeur : Université de Savoie 97

Chapitre 6 : Description en VHDL 6.1 Présentation du langage VHDL 6.2 La partie ENTITY 6.3 La partie ARCHITECTURE 6.4 La description en VHDL Université de Savoie 98

La partie ARCHITECTURE Organisation Toute architecture est associée à une entité Définition : L architecture définit les fonctionnalités et les relations temporelles. Elle décrit le comportement du composant. Zone de déclaration Zone de définition Université de Savoie 99

La partie ARCHITECTURE Objet VHDL : La déclaration Dans une architecture il est nécessaire de déclarer les objets utilisés et leur type avant la zone décrivant l'architecture (avant le «begin... end» ). Parmi les objets très utilisés, figurent : Les composants : COMPONENT Les signaux : SIGNAL Les variables : VARIABLE Université de Savoie 100

La partie ARCHITECTURE Objet VHDL : Signal Un signal représente une équipotentielle Il doit être déclaré avant utilisation L affectation se fait avec l opérateur «<=» Initialisation rapide Toto <=(others => 0 ); est équivalent à Toto <= "000000 0 "; Université de Savoie 101

La partie ARCHITECTURE Objet VHDL : Variable Une variable doit être déclarée avant utilisation Elle ne peut être déclarée que dans un «process» L affectation se fait avec l opérateur «:=» Université de Savoie 102

La partie ARCHITECTURE Les différentes descriptions L'architecture est la description interne du circuit. Elle est toujours associée à une entité. Une même entité peut avoir plusieurs «architectures». Ces descriptions peuvent être : Par flot de donnée Comportementale Structurelle Université de Savoie 103

La partie ARCHITECTURE Exemple de l additionneur A B Cin ADD Cout S Université de Savoie 104

La partie ARCHITECTURE Description par flot de donnée En flot de donnée les fonctions du système logique sont décrites par des équations booléennes. Le calcul des équations à été réalisé au préalable. Université de Savoie 105

A B S2 Cout Cin S1 S3 S architecture flot of Additionneur is signal S1, S2, S3 : bit ; begin S1 <= A xor B; S2 <= A and B; S3 <= S1 and Cin; architecture flot1 of Additionneur is signal S1, S2, S3 : bit ; S <= S1 xor Cin; Cout <= S2 or S3; end flot ; begin S <= S1 xor Cin; Cout <= S2 or S3; S1 <= A xor B; S2 <= A and B; S3 <= S1 and Cin; end flot ; L ordre des instructions n a pas d importance!!!

La partie ARCHITECTURE Description comportementale La description comportementale permet de faire une description du système sans faire référence aux équation, ni à la structure. Université de Savoie 107

A B Cin architecture comportementale of Additionneur is begin process (A,B,Cin) begin if (A = '0' AND B = '0' AND Cin = '0') then S <= '0 ; Cout <= '0 ; end if; if (A = '0' AND B = '0' AND Cin = '1') then S <= '1 ; Cout <= '0 ; end if; if (A = '0' AND B = '1' AND Cin = '0') then S <= '1 ; Cout <= '0 ; end if; etc end process; end comportementale; A B Cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 S Count

La partie ARCHITECTURE Description structurelle (1) La description structurelle décrit la fonction à partir de composant préexistant. Il suffit de définir : La liste des composant utilisés La liste des interconnexions Université de Savoie 109

La partie ARCHITECTURE Description structurelle (2) architecture structurelle1 of Additionneur is component porteou port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component porteet port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component portexor port ( e1 : in bit; e2 : in bit; s : out bit ); end component; signal S1, S2, S3 : bit; begin u0 : porteet port map ( A, B, S2); u1 : portexor port map ( A, B, S1); u2 : porteet port map ( S1, Cin, S3); u3 : portexor port map ( S1, Cin, S); u4 : porteou port map ( S2, S3, Cout); end structurelle1; Université de Savoie 110

La partie ARCHITECTURE Hiérarchisation demi_add Additionneur A B demi_add u0 u0 S1 S2 S3 u2 Cout Cin u1 u1 S demi_add Université de Savoie 111

3) Unités de conception architecture structurelle2 of Additionneur is component porteou port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component DemiADD port ( e1 : in bit; e2 : in bit; s1 : out bit ; s2 : out bit); end component; signal S1, S2, S3 : bit; begin u0 : DemiADD port map ( A, B, S2, S1); u1 : DemiADD port map ( S1, Cin, S3, S); u2 : porteou port map ( S2, S3, Cout); end structurelle2;

Entity DemiAdd is port ( e1 : in bit; e2 : in bit; s1 : out bit ; s2 : out bit); end DemiAdd; architecture structurelle of DemiAdd is component porteet port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component portexor port ( e1 : in bit; e2 : in bit; s : out bit ); end component; begin u0 : PorteET port map ( e1, e2, s1); end structurelle; u1 : portexor port map ( e1, e2, s2);

La partie ARCHITECTURE Description structurelle (3) La description structurelle d'un circuit complexe en vhdl présente de nombreux avantages : Une architecture hiérarchique compréhensible : il est plus simple de séparer un circuit en un ensemble de blocs plus petits, ayant des fonctions bien identifiées. Ces blocs pourront alors être décrits sous forme comportementale, ou bien à leur tour être séparés en blocs encore plus simples. Une synthèse logique efficace : la synthèse est un processus lent (en terme de temps de calcul). Plus un bloc est gros et complexe, plus sa synthèse prendra du temps. Il vaut donc mieux travailler sur des blocs plus petits, plus simples à synthétiser, et rassembler le tout à la fin. Université de Savoie 114

Exercice (1) Ecrire l ensemble d un fichier VHDL (Library, Entity, Architecture) qui décrit une porte OU à 2 entrées a et b de 1 bit (sortie s) Université de Savoie 115

Exercice (2) Ecrire l ensemble d un fichier VHDL (Library, Entity, Architecture) qui décrit un additionneur ADD4 à 2 entrées de 4 bits A et B signées et une sortie S de 4 bits Université de Savoie 116

Chapitre 6 : Description en VHDL 6.1 Présentation du langage VHDL 6.2 La partie ENTITY 6.3 La partie ARCHITECTURE 6.4 La description en VHDL Université de Savoie 117

Description en VHDL Conventions lexicales (1) En général, les instructions se terminent par «;» Règles de dénomination : 26 lettres de l alphabet, les 10 chiffres et _ Le premier caractère est une lettre Il ne peut y avoir 2 «_» de suite L identifieur ne peut se terminer par «_» Université de Savoie 118

Description en VHDL Conventions lexicales (2) Majuscule / Minuscule Un mot en majuscule est identique à un mot en minuscule. Il est cependant conseillé d'avoir des règles d'écriture cohérentes. Par exemple, les mots réservés du langage peuvent être en majuscule et les autres mots en minuscule. Identificateurs Ce sont les noms de variables, de signaux, de fonctions,... Ils ne peuvent contenir que des lettres, des chiffres et le "underscore" _. Ils doivent commencer par une lettre. Ils ne peuvent pas contenir d'espace. Les mots-clefs du langage ne peuvent pas être utilisés comme identificateurs. Université de Savoie 119

Description en VHDL Conventions lexicales (3) Expressions Elles se terminent par un point virgule ; Littéraux : Ce sont des valeurs explicites : 67 est un littéral pour le type entier '0' est un littéral pour un bit "001" O"562" X"FF1" sont des littéraux pour les vecteurs de bits "chaine" est un littéral de type chaine de caractères Université de Savoie 120

Description en VHDL Conventions lexicales (4) Commentaires Les commentaires doivent être inclus dans le code, pour augmenter la lisibilité et la documentation. Ils commencent par 2 tirets (--) en se terminent en fin de ligne Il est impératif de documenter vos codes. Université de Savoie 121

Description en VHDL Mots réservés http://amouf.chez.com/syntaxe.htm Université de Savoie 122

Description en VHDL Les types d objet Les entiers (integer) Les types énumérés Les types tableaux Université de Savoie 123

Description en VHDL Les types : entiers Entier (integer) Le type entier integer prédéfini dans le paquetage standard STD permet de définir des nombres signés sur 32 bits entre -2 31 et (2 31 1). Exemple de déclaration d un signal (objet) de type integer pouvant prendre les valeurs de 0 à 99 : signal compteur : integer range 0 to 99 := 0; Université de Savoie 124

Description en VHDL Les types : énumérés (1) Un type énuméré est un type défini par une énumération exhaustive que le programmeur peut définir : Exemple de déclaration d un signal (objet) de type COULEURS : signal palette_couleur: COULEURS ; Dans le paquetage STANDARD de la bibliothèque STD, plusieurs types énumérés sont définis : 125

Description en VHDL Les types : énumérés (2) Dans le paquetage STD_LOGIC_1164 de la bibliothèque IEEE, le type STD_ULOGIC est défini par : Au démarrage les signaux sont dans un état inconnu 'U'. 'X' indique un conflit, le signal est affecté d'un côté à '1' et d'un autre à '0'. '0' et '1' correspondant aux valeurs booléennes du signal. 'Z' correspond à l'état haute 'impédance". 'W' est la valeur d'un signal relié à 2 résistances de tirage, une tirant à 0 et l'autre à 1. 'H' et 'L' sont des valeurs d'un signal relié respectivement à une résistance de tirage à 1 et à 0. '-' est un état indifférent. Utile pour décrire les tables de vérité. Université de Savoie 126

Description en VHDL Les tableaux Les types TABLEAU ou array sont des collections d'objets de même type, indéxés par des entiers ou des énumérés. Par exemple le type BIT_VECTOR de la bibliothèque STD est un tableau de dimension 1 (vecteur) de taille quelconque Et le type STD_ULOGIC_VECTOR de la bibliothèque IEEE : type std_ulogic_vector is array (natural range <>) of std_ulogic 127

Objet VHDL Exercice Type Définir un type énuméré etat composé des valeurs OK, HS, ERROR Université de Savoie 128

Description en VHDL Opérateurs (1) Opérateurs logiques (sur booléens, bits et dérivés) Opérateurs relationnels (sur types scalaires ou dérivés (signed, unsigned)) Université de Savoie 129

Description en VHDL Opérateurs (2) Opérateurs bits (sur vecteurs de bits et types numériques) Opérateurs arithmétiques (sur types numériques : entiers, signés, non signés, flottant) Opérateurs de décalage (sur tableaux de bits ou étendus) : sll, srl, sla, sra, rol, ror Université de Savoie 130

Description en VHDL Instructions VHDL Le VHDL le matériel à l aide : d'instructions concurrentes dont l'ordre d'écriture n'a aucune importance d instructions séquentielles qui sont exécutées les unes après les autres, comme c'est la cas du C. Ces instructions doivent être écrites dans un «process». Université de Savoie 131

Description en VHDL Assignations concurrentes Toutes les déclarations sont exécutées simultanément et en permanence L ordre des déclarations dans le code source n a pas d influence Les déclarations possibles sont : Assignation continue : <= Instantiation d un composant : port map Assignation conditionnelle : when else Assignation sélective : with select when when Appel d un process Université de Savoie 132

Description en VHDL Assignations séquentielles Les process manipulent les variable et signal Au sein de ces descriptions, les déclarations sont exécutées de manière séquentielle, l une après l autre L ordre des déclarations est donc important Les déclarations possibles sont : Assignation continue : <= (signal) et := (variable) Assignation conditionnelle : if then elsif then else end if; Assignation sélective : case is when => when => end case; Boucles : for in loop end loop; Boucles : while... loop end loop; Instructions next et exit Université de Savoie 133

Description en VHDL Qu est ce qu un VHDL Process? C est une suite d instructions séquentielles Les processus peuvent être actifs ou inactifs Il possède une liste de sensibilité qui sont les signaux pouvant rendre le processus actif lorsque qu un signal de cette liste change de valeur. Par exemple, un processus avec un signal d horloge dans sa liste de sensibilité deviendra actif à chaque front d horloge, et toutes les instructions séquentielles seront alors exécutées. A la fin du processus (et seulement à la fin), toutes les sorties (signaux) sont affectées et le processus redevient inactif. Université de Savoie 134

Description en VHDL Process synchrone Mise en œuvre de process synchronisé sur l horloge If clk event and clk= 1 then ou if rising_edge(clk) If clk event and clk= 0 then ou if falling_edge(clk) Université de Savoie 135

Description en VHDL SIGNAUX vs variables (1) Les signaux sont visibles dans toute l architecture. Ce sont des équipotentielles. Les variables sont locales à chaque processus et sont mises à jour immédiatement. Elles sont très utiles pour effectuer un codage séquentiel classique comme avec le langage C. Les variables sont déclarées juste avant le corps du processus et sont affectées avec l'instruction d'affectation immédiate :=. Ceci afin de ne pas confondre avec l'instruction <= "reçoit" pour les signaux. Université de Savoie 136

Description en VHDL SIGNAUX vs variables (2) Exemple : Pour le processus suivant, a,b et c sont des signaux, x est une variable. => Préciser à quelles moments les affectations vont être réalisée. process (a) variable x : std_logic; begin x := a+1; a <= a+1; b <= x; c <= a; end process; 137

Exercice Ecrire l ensemble d un fichier VHDL (Library, Entity, Architecture) qui décrit un compteur COMPT qui compte sur 3 bits sur front montant du signal d horloge clk Université de Savoie 138

Description en VHDL Exemple VHDL (1) Ces affectations sont des instructions concurrentes au même titre que les processus entres eux. Architecture avec processus architecture arc of adder is begin process(a,b,cin) begin S <= A xor B xor Cin; end process; end arc; Architecture avec affectations concurrentes architecture arc of adder is begin S <= A xor B xor Cin; end arc; Université de Savoie 139

Description en VHDL Exemple VHDL (2) Architecture avec processus architecture arc of adder is begin process(a,b,cin) begin if A = '0' then S <= B xor Cin; elsif B = '0' then S <= not(cin); else S <= Cin; end if; end process; end arc; Architecture avec affectations concurrentes architecture arc of adder is begin S <= B xor Cin when A = '0' else not Cin when B = '0' else Cin; end arc; Université de Savoie 140

Description en VHDL Exemple VHDL (3) Architecture avec processus architecture arc of MUX is begin process(sel) begin case SEL is when 0 => sortie <= A; when 1 => sortie <= B; when others => sortie <= D; end case; end process; end arc; Architecture avec affectations concurrentes architecture arc of MUX is begin with SEL select sortie <= A when 0, B when 1, C when 2, D when others; end arc; Université de Savoie 141