Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn Cours VHDL Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn.

Slides:



Advertisements
Présentations similaires
Du Software au Hardware
Advertisements

Test Intégré pour Convertisseurs Analogique/Numérique
LYCEE MAGHREB ARABE TECHNIQUE
Signal numérique sur 10 bits Signal analogique sur 4 V
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Flow de conception (4h)-demo
Dossier TICE Excel.
Cours Systèmes logiques
Décrire un circuit numérique avec VHDL
Cours VHDL Chap 3: sémantique VHDL
Expressions et assignations
Cours #6 Conception d’unités de contrôle
2 - Introduction à VHDL-AMS (1 à 23 = 1h45)
Le VHDL De nos jours, les circuits numériques de haute performance sont habituellement créés à partir de descriptions en langages de haut niveau. Nous.
Cours #12: Exercices de révision
Algèbre de Boole et les Boucles
Cours #8 Flot de conception d’un circuit numérique
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Électronique numérique Intervenants : Boitier V. / Perisse T.
Introduction Objectifs du cours Évaluation Références
Plan 1-Introduction. 2-Standard VHDL-AMS. Modélisations:
Cours #7 Vérification d’un modèle VHDL
Cours #5 Conception de chemins des données
COMPOSANTS PROGRAMMABLES
Modélisation VHDL d’un chemin des données
Décodeurs et encodeurs : sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Le VHDL : SOMMAIRE I Introduction II Éléments généraux du langage
Banc d’essai pour un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Synthèse d’un circuit.
Modélisation VHDL du chemin des données d’un processeur à usage général Sujets de ce thème
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Description d’un circuit.
Synthèse et implémentation de circuits arithmétiques sur FPGA
Processeurs et chemins des données
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
Advanced Boolean Equation Language
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
MICROLOR Le savoir partagé
Méthodologie de conception Outils de conception
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Vérification de circuits.
Modélisation VHDL-AMS haut niveau de l’activité en courant des mémoires en vue de l'optimisation de la compatibilité électromagnétique Richard PERDRIAU*/**
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Arithmétique entière.
Les systèmes mono-puce
Mise au point de systèmes mixtes et évaluation de puissance : Un exemple d’application Anne-Marie TRULLEMANS- ANCKAERT FTFC’03 UCL-DICE, Place du Levant.
Concepts intermédiaires de VHDL
Synthèse et implémentation d’un circuit combinatoire
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Simulation d’un modèle.
Journées d'études Faible Tension Faible Consommation 14, 15, 16 mai Gwenolé CORRE, Nathalie JULIEN, Eric SENN, Eric MARTIN LESTER, Université de.
REPRESENTATION DE L’INFORMATION
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Objets des catégories.
Implantation de processeurs dans les FPGA et ASIC
Introduction au VHDL - R.WEBER - Polytech'Orleans
CIRCUITS LOGIQUES PROGRAMMABLES
1 INFOR 101 Chapitre 4 Marianne Morris. 2 Révision de chapitre 3 Algorithmes Sequential Search Selection Sort Binary Search Ordre de magnitude  (n) Mesurer.
05/03/06 11:49 Yannick Herve, Wilfried Uhring, Jihad Zallat 1 Électronique Numérique Chapitre 6 Composants séquentiels Bilan de l’offre commerciale, Le.
Implémentation de la division sur FPGA
VHDL pour circuits séquentiels
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Patricia Renault UPMC 2004/2005
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Travail # 1 Tutorial de mathematiques Foyer : 140
CHAPITRE 8 Les booléens et les chaines de bits 1.
Description d’un circuit combinatoire en VHDL
Chapitre 01: Structure d'un module VHDL
Synthèse et implémentation de circuits arithmétiques sur FPGA
VALMEM Traduction automatique d'une description comportementale VHDL + annotations temporelles en automates temporisés A. Bara, E. Encrenaz LIP6 VALMEM.
Transcription de la présentation:

Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn Cours VHDL Ing Mohamed MASMOUDI Mohamed.masmoudi@alphatec.com.tn

Le VHDL Very High Speed Integrated Circuit Hardware Description Langage Langage : de description structurelle et comportementale de la conception des dispositifs matériels en électronique numérique (ASICs, CPLD, FPGA, logique câblée) Autres HDL : Verilog, UDL/1, Estérel, Hardware C M. MASMOUDI Cours VHDL

Pourquoi? Langage pour la spécification des systèmes digitaux, aussi bien au niveau comportemental que structural Utilisation: description des systèmes simulation aide à la conception documentation Caractéristiques principales: description à plusieurs niveaux simulation activée par événements (event-driven) modularité extensibilité langage général, fortement typé M. MASMOUDI Cours VHDL

Historique 1994 1987 1986 1983 1981 Révision du standard IEEE 1164 Publication du standard IEEE 1076 1986 Transfert des droits à l’IEEE 1983 Développement des bases du langage par Intermetrics, IBM et TI 1981 Initiation du langage par le US - DoD M. MASMOUDI Cours VHDL

Concept VHDL permet de coder une fonction d’une manière structurelle (comme un schéma) et/ou comportementale (fonctionnelle) Codage comportemental plus proche de l’algorithme portabilité, maintenabilité, versatilité Codage structurel création d’une hiérarchie emploi de macrofonctions format de la liste d’équipotentielle (netlist) S <= not ((A and B) or (C and D)); A B S C D M. MASMOUDI Cours VHDL

Niveau d’abstraction Le codage en VHDL peut se faire selon 4 niveaux d’abstraction, ce qui permet une conception descendante Architecture synthétisable Algorithme Architecture Netlist registres bibliothèque radix1 radix2 radix3 S=fft(e,64) Synthèse logique Niveau 1 Niveau 2 Niveau RTL netlist M. MASMOUDI Cours VHDL

Niveau d’abstraction M. MASMOUDI Cours VHDL

Niveau d’abstraction Le niveau système : cette description regroupe l’ensemble des spécification du circuit décrites sous la forme de comportements vis-à-vis de l’environnement associé au circuit, de performances à satisfaire, de contraintes d’utilisation. Cette description est de nature purement externe par rapport au circuit. Le niveau fonctionnel : la description au niveau fonctionnel exprime le premier niveau interne de la solution, sous la forme d’un ensemble de fonctions +/- interdépendantes et de complexité variée. Cette description est orientée application ou objectif à satisfaire. M. MASMOUDI Cours VHDL

Niveau d’abstraction Le niveau architectural : la description architecturale exprime les modules exécutifs et les interconnections nécessaires entre ceux-ci pour satisfaire la fonctionnalité globale du niveau supérieur. Cette description est donc orientée réalisation. Le niveau logique: la description représente un circuit par un ensemble interconnecté de fonctions logiques de faible complexité. Le niveau électrique : la description électrique représente le circuit sous la forme d’éléments microélectroniques (transistors essentiellement) interconnectés de façon à assurer la fonctionnalité du circuit spécifiée par les niveaux supérieurs. M. MASMOUDI Cours VHDL

Modèle de Gajski M. MASMOUDI Cours VHDL

Etapes VHDL : spécification, conception et description matérielle en électronique numérique Analyse du système et partitionnement des tâches Écriture du code VHDL par bloc Écriture des « Test Bench » en VHDL Simulation du code VHDL Synthèse au niveau portes Simulation au niveau portes Implémentation matérielle M. MASMOUDI Cours VHDL

Apport Pour les circuits intégrés Pour les systèmes A2 + B2 Diminution des erreurs simulation à différents niveaux d’abstraction Diminution du temps de développement conception à plus haut niveau Pour les systèmes Anticipation de l’intégration modèles de composants simulable avant disponibilité Normalisation des échanges langage universel et unique M. MASMOUDI Cours VHDL

Description matérielle VHDL : se base sur la paire ENTITY - ARCHITECTURE a b c d f Circuit Boîte noire ENTITY décrit les ports d’E/S du circuit (brochage) a b c d f ARCHITECTURE : décrit le contenu du circuit (câblage interne) M. MASMOUDI Cours VHDL

Entity Description externe du composant (Boîte noire) Définition des ports d’E/S : type, sens, taille, … Définition des paramètres ENTITY <entity name> IS <generic declaration> <port declaration> END [ENTITY] <entity name> ; <generic declaration> : paramètres du composant <port declaration> : interface avec l’environnement extérieur M. MASMOUDI Cours VHDL

Les ports: PORT( <port name> : <mode> <type> ; ..... <port name> : <mode> <type> ); Les modes: IN : Données qui sont des entrées uniquement OUT : Données qui sont des sorties uniquement INOUT : Données bidirectionnelles (en entrée ou en sortie) BUFFER : Données en sortie mais aussi en feed-back interne dans le circuit M. MASMOUDI Cours VHDL

Types des ports BIT : valeurs possibles ‘0’ et ‘1’ BIT_VECTOR : un vecteur de bits INTEGER : utilisés comme indices (boucles), constantes, … BOOLEAN : prend deux valeurs ‘TRUE’ ou ‘FALSE’ CHARACTER : caractères ascii Exemple : SIGNAL a: BIT_VECTOR(0 TO 3); - - e.g... Sens ascendant SIGNAL b: BIT_VECTOR(3 DOWNTO 0); - - e.g... Sens descendant a <= "0111"; b <= "0101"; Ce qui signifie : a(0) = '0' b(0) = '1' a(1) = '1' b(1) = '0' a(2) = '1' b(2) = '1' a(3) = '1' b(3) = '0' M. MASMOUDI Cours VHDL

Types des ports (IEEE1164) library IEEE; -- librairie use IEEE.std_logic_1164.all;-- package ENTITY exple1 IS PORT ( …. ); END exple1; ARCHITECTURE archlogic OF exle1 IS BEGIN ….. END archlogic; Valeurs des signaux std_logic et std_logic_vector Valeur Interprétation 0 - Forcé 1 1 - Forcé U Uninitialized (non-initialisé) X Inconnu - Forcé Z Haute impédance W Inconnu - Faible L 0 - Faible H 1 - Faible - Don’t Care M. MASMOUDI Cours VHDL

Déclarations d’une entité Circuit 1 rst q[N:0] d[N:0] co clk ENTITY circuit1 IS GENERIC (N: INTEGER:=7); PORT ( clk, rst: IN BIT; d: IN BIT_VECTOR(7 DOWNTO 0); q: OUT BIT_VECTOR(7 DOWNTO 0); co: OUT BIT); END circuit1; M. MASMOUDI Cours VHDL

Description ”du câblage interne” L’architecture Objectif: Description ”du câblage interne” Modes de description: Structurelle Instanciations : placement de composants logiques et leur interconnexion Comportementale (aspect algorithmique) Description haut niveau (abstraite) IF a = b THEN x<=a; Équations logiques x <= (a OR b) AND c; M. MASMOUDI Cours VHDL

Paire entité-architecture Library IEEE; use IEEE.STD_1164.ALL; Entity décrit l’interface externe d’un module, elle contient : Nom du module (ex: AOI) Ports d ’entrée/sorties (Nom, direction: in,out, inout, buffer,…) Type (BIT, BIT_VECTOR, BOOLEAN, INTEGER,…) Paramètres Architecture décrit le fonctionnement interne et comporte : zone de déclarations zone pour les instructions toujours associée à une entité plusieurs architectures peuvent être associées à la même entité entity AOI is port ( A, B, C, D: in STD_LOGIC; F: out STD_LOGIC ); end AOI; architecture Acrh1 of AOI is begin F<=not((A and B)or(C and D)); end arch1; -- fin du code VHDL M. MASMOUDI Cours VHDL

Paquetage déclaration de paquetage corps de paquetage Paquetage “Package” : collection d’objets réutilisables : constantes, composants, types, fonction, procédure, ... 2 unités de compilation : déclaration de paquetage corps de paquetage Le contenu de la déclaration de paquetage est “visible” depuis une autre unité de compilation si elle en a déclaré l’utilisation Le contenu du corps de paquetage est “invisible” des autres unités de compilation M. MASMOUDI Cours VHDL

Codage des composants in1 in2 carry cin result Half adder sum cout a b in1 in2 cin carry result ENTITY half_adder IS PORT (a,b: IN std_logic; sum,cout : OUT std_logic); END half_adder; ARCHITECTURE beh OF half_adder IS begin sum <= a XOR b; cout <= a AND b; end beh; ENTITY OR_2 IS PORT(a,b: IN std_logic; c : OUT std_logic); END OR_2; ARCHITECTURE beh OF OR_2 IS begin c <= a OR b; end beh; M. MASMOUDI Cours VHDL

Instanciation Méthode 1 <inst label> : ENTITY <library>.<ent name>(<arch name>); ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adder SIGNAL s1,s2,s3 : std_logic; BEGIN H1 : entity work.half_adder(beh) PORT MAP(a=>in1, b=>in2, sum=> s1, cout => s3); H2 : entity work.half_adder(beh) PORT MAP(a=> s1, b=> cin, sum => result, cout => s2); O1 : entity work.OR_2(beh) PORT MAP(a=>s2, b=> s3, c=> carry); END structural; M. MASMOUDI Cours VHDL

Instanciation Méthode 2 ENTITY full_adder IS PORT(in1,in2,cin: IN std_logic; result,carry : OUT std_logic); END full_adder; ARCHITECTURE structural OF full_adder COMPONENT half_adder PORT(a,b : IN std_logic; sum,cout : OUT std_logic); END COMPONENT; COMPONENT OR_2 PORT(a,b : IN std_logic; c : OUT std_logic); END COMPONENT; SIGNAL s1,s2,s3 : std_logic; BEGIN H1 : half_adder PORT MAP(a=>in1, b=>in2, sum=> s1, cout => s3); H2 : half_adder PORT MAP(a=> s1, b=> cin, sum => result, cout => s2); O1 : or_2 PORT MAP(a=>s2, b=> s3, c=> carry); END structural; M. MASMOUDI Cours VHDL

+ unaire (signe +) ou addition - unaire (signe -) ou soustraction Opérateurs CATEGORIE TYPE OPERANDES SIGNIFICATION and nand or nor xor xnor not + - * / abs ** mod rem boolean bit bit_vector integer real et non-et ou non-ou ou exclusif non ou-exlusif non + unaire (signe +) ou addition - unaire (signe -) ou soustraction multiplication division valeur absolue exponentiation modulo reste M. MASMOUDI Cours VHDL

Opérateurs CATEGORIE TYPE OPERANDES SIGNIFICATION = /= < <= > >= sll srl rol ror & Entrée Résultat tout type boolean scalaire bit_vector (amplitude : integer) bit égal non égal inférieur inférieur ou égal supérieur supérieur ou égal logique gauche logique droite circulaire gauche circulaire droite concaténation M. MASMOUDI Cours VHDL

M. MASMOUDI Cours VHDL