Introduction à VHDL. Introduction à VHDL. Daniel Etiemble de@lri.fr. Exemple de conception. Code VHDL pour réaliser un comparateur 4 bits



Documents pareils
Le langage VHDL. Eduardo Sanchez EPFL

Manipulations du laboratoire

SIN-FPGA DESCRIPTION PAR SCHEMA

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

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

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

IFT1215 Introduction aux systèmes informatiques

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Chapitre VI- La validation de la composition.

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

Conception de circuits numériques et architecture des ordinateurs

IRL : Simulation distribuée pour les systèmes embarqués

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

QUESTION 1 {2 points}

Logique séquentielle

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

VIII- Circuits séquentiels. Mémoires

Diagrammes de Package, de déploiement et de composants UML

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

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

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

Profil UML pour TLM: contribution à la formalisation et à l automatisation du flot de conception et vérification des systèmes-sur-puce.

DG-ADAJ: Une plateforme Desktop Grid

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

DOCUMENT PROTEGE PAR UN DROIT DE COPIE. CPLD ou FPGA Critères de choix. page 1

Cours 7 : Programmation d une chaîne d acquisition

Quoi de neuf en LabVIEW FPGA 2010?

Resolution limit in community detection

Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Architecture des ordinateurs

Systemesdigitaux. Cours 5

Séminaire RGE REIMS 17 février 2011

Les PME face aux ERP. Quels sont les principaux enjeux des projets ERP dans les PME?

Tutoriel Création d une source Cydia et compilation des packages sous Linux

La norme Midi et JavaSound

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

Annexe : La Programmation Informatique

Cours de Génie Logiciel

ISO/CEI NORME INTERNATIONALE

Conception des systèmes répartis

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Variateurs de vitesse

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Quatrième partie IV. Test. Test 15 février / 71

Projet audio. Analyse des Signaux ELE2700

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Usine Numérique Intégration Produit Production

Importation de fichiers Eagle

Rappels d architecture

Compilation (INF 564)

MAC-TC: programmation d un plate forme DSP-FPGA

Générer du code à partir d une description de haut niveau

TP1 : Initiation à Java et Eclipse

Initiation au HPC - Généralités

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Introduction à la Programmation Parallèle: MPI

SYSTEME DE TELESURVEILLANCE VIDEO

Le Guide Pratique des Processus Métiers

Programmer en JAVA. par Tama

TP Contraintes - Triggers

THÈSE DEVANT L UNIVERSITÉ DE RENNES 1

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

Surveiller les applications et les services grâce à la surveillance réseau

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

SUR MODULE CAMÉRA C38A (OV7620)

Cours 1 : La compilation

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Thème 3 Conception et vérification d architectures de systèmes sur puce

Corrigés des premiers exercices sur les classes

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Composants Logiciels. Le modèle de composant de CORBA. Plan

as Architecture des Systèmes d Information

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Utilisation de l'outil AdisTlsMonitoringTester.exe

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

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

Introduction aux systèmes temps réel. Iulian Ober IRIT

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

CONFIGURATION DE L AUTOMATE SIEMENS

Carte Relais GSM (Manuel Utilisateur)

Une bibliothèque de templates pour CUDA

Cours 14 Les fichiers

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

PROJET ALGORITHMIQUE ET PROGRAMMATION II

DotNet. Plan. Les outils de développement

Licence Sciences et Technologies Examen janvier 2010

Composants génériques de calcul scientifique

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Politique de certification et procédures de l autorité de certification CNRS

CONVERTISSEURS NA ET AN

Proteus Design Suite V7 Instruments virtuels

Transcription:

Introduction à VHDL Daniel Etiemble de@lri.fr Introduction à VHDL Exemple de conception Code VHDL pour réaler un comparateur 4 bits [30] B[30] eqcomp4 égal -- eqcomp4 est un comparateur 4 bits eqcomp4 (a, b bit_vector(3 0); equals out bit); eqcomp4; dataflow of eqcomp4 equals 1 (a b) 0 ; dataflow; NOTE 1. -- dique un commentaire 2. Deux parties dans le code 2 1

Format VHDL Le code VHDL décrit une entité en deux parties Déclaration d entité Corps de l Il a aussi d autres aspects package configuration Entité Déclaration d entité Déclaration des terfaces Corps de l Défition fonctionnelle 3 Déclaration d entité Description des entrées sorties Comme le schéma d un composant Description des s d un composant (les pattes d E/S du schéma) <name>... <name>; EXEMPLE un additionneur 4 bits a[30] b[30] Schéma ci add sum[30] co add4 ( a, b std_logic_vector(3 0); ci sum out std_logic_vector(3 0); co out std_logic); add4; 4 2

PORTS Chaque signal d E/S d une entité est appelé Un est un objet de tpe données qui peut recevoir des valeurs et être utilé dans des expressions Chaque a un nom, une direction (mode) et un tpe de données Nom de Majuscules/muscules sont équivalents Le premier caractère doit être une lettre Le dernier caractère ne peut être un underscore Deux underscores successifs sont terdits 5 Modes et tpes Un mode décrit la direction du transfert d une donnée à travers un out out (signaux bidirectionnels) buffer (un noeud terne utilé pour feedback) Il a plusieurs tpes de données dponibles Boolean, bit, bit_vector, teger La bibliothèque standard IEEE fournit également std_ulogic et std_logic et des tableaux de ces deux tpes On doit signaler à VHDL d utiler cette bibliothèque librar ieee; use iee.std_logic_1164.all; 6 3

rchitecture Une décrit le contenu d une entité VHDL a tro stles d qui peuvent être combée dans le corps d une Comemental Flot de données Structurel Le même circuit peut être décrit en utilant n ime lequel des tro stles 7 Description comementale librar ieee; use ieee.std_logic_1164.all; eqcomp4 ( a, b std_logic_vector(3 0) equals out std_logic); eqcomp4; behavioral of eqcomp4 comp process (a, b) if a b equals 1 ; equals 0 ; if; process comp; behavioral; Une descripton comementale fournit un algorithme qui modéle le fonctionnement du circuit Une déclaration de processus contient un algorithme Elle commence par une étiquette (optionnel), le mot clé process et une lte des signaux actifs (sensivit lt) La lte des signaux actifs dique quels signaux provoqueront l exécution du processus 8 4

Description flot de données Une description flot de données spécifie comment la donnée est transférée de signal à signal sans utiler d affectations séquentielles (comme dans la description comementale) Cette description ne nécessite pas de déclaration de processus Toutes les déclarations s exécutent en même temps ( concurrent signal assignment ) dataflow of eqcomp4 equals 1 (a b) 0 ; dataflow; 9 Descriptions structurelles librar ieee; use ieee.std_logic_1164.all; eqcomp4 ( a, b std_logic_vector(3 0) equals out std_logic); eqcomp4; use work.gatespkg.all; struct of eqcomp4 signal x std_logic_vector(0 to 3) u0 xnor2 map (a(0),b(0),x(0)); u1 xnor2 map (a(1),b(1),x(1)); u2 xnor2 map (a(2),b(2),x(2)); u3 xnor2 map (a(3),b(3),x(3)); u4 and4 map (x(0),x(1),x(2),x(3),equals); struct; Les composants sont stanciés et connectés. Ils doivent être déf dans un package et compilés dans une bibliothèque Les bibliogthèques sont attachées par une déclaration xnor2 and and4 sont dans la bibliothèque work.gatespkg. 10 5

Modélation structurelle en VHDL Concevoir une fonction majorité à tro entrées La déclaration d entité est équivalente à La déclaration d est équivalente à Les composants sont des es ET et des es OU 11 VHDL Code spect du code VHDL L a tro déclarations Deux composants Un signal Les déclarations de composants correspondent à leur entité Les déclarations de signaux créent un ou plusieurs signaux ternes MJORITY ( _IN, B_IN, C_IN BIT; Z_OUT out BIT); MJORITY; struct of MJORITY --Declare logic operators component ND2_OP (, B BIT; z out BIT); component; component OR3_OP (, B, C BIT; z out BIT); component; --Declare signals to terconnect logic operators signal INT1, INT2, INT3 BIT; 1 ND2_OP map (_IN,B_IN,INT1); 2 ND2_OP map (_IN,C_IN,INT2); 3 ND2_OP map (B_IN,C_IN,INT3); 4 OR3_OP map (INT1,INT2,INT3,Z_OUT); struct; 12 6

Déclaration de composants Les composants nécessaires sont aussi décrits avec un stle VHDL ND2_OP (, B BIT; Z out BIT); ND2_OP; MODEL of ND2_OP Z and B; MODEL; OR3_OP (, B, C BIT; Z out BIT); OR3_OP; MODEL of OR3_OP Z or B or C; MODEL; Ici modélation flot de données 13 Instantiation des composants Le circuit Majorité contient quatre déclarations d stantiation de composants Elles commencent par une étiquette suivie de Pu un nom de composant map décrit comment chaque composant est connecté au reste du sstème. Ce sont des déclarations concurrentes l ordre n a pas d imance Elles sont toutes exécutées en même temps 1 ND2_OP map (_IN,B_IN,INT1); 2 ND2_OP map (_IN,C_IN,INT2); 3 ND2_OP map (B_IN,C_IN,INT3); 4 OR3_OP map (INT1,INT2,INT3,Z_OUT); struct; 14 7

Logique séquentielle Passage d un état à l état suivant sur une transition d horloge label process (CLK) if(rg_edge(clk)) D C; B ; C B; if;--clk process;--ma CLK DFF B DFF C DFF D 15 Structures hiérarchiques Il n a pas de restrictions sur la hiérarchation des modèles structurels Les entités d une réalation peuvent utiler des composants dont les entités à leur tour peuvent utiler des composants EXEMPLE un circuit avec deux circuits majorité qui détecte quand deux groupes de tro entrées ont tous deux un signal de sortie haut. MJORITY_2x3 ( 1,B1, C1 BIT; 2, B2, C2 Bit; Z_OUT out BIT); MJORITY_2x3; struct of MJORITY_2x3 component ND2_OP (, B BIT; z out BIT); component; component MJORITY (_IN,B_IN,C_IN BIT Z_OUT out BIT); component; signal INT1, INT2 BIT; M1 MJORITY map (1,B1,C1,INT1); M2 MJORITY map (2,B2,C2,INT2); 1 ND2_OP map (INT1,INT2,Z_OUT); struct; 16 8

PCKGES package LOGIC_OPS component ND2_OP (, B BIT; z out BIT); component; component OR32_OP (, B, C BIT; z out BIT); component; component NOT_OP (, BIT; _BR out BIT); component; LOGIC_OPS; Un package sert à réutiler un ensemble de déclarations de composants Un package commence par le mot clé package et se terme par le mot clé Il contient les défitions de composants et de signaux (et plus ) Ce package pourrait être sauvegardé dans la bibliothèque WORK et appelé par uses WORK.LOGIC_OPS.all Ou il pourrait être clus dans le fichier source qui contient toutes les entités pour un problème 17 Bibliothèques Une bibliothèque contient du code compilé d entités de conception Il a une bibliothèque standard VHDL Lors de la compilation d un projet, il est rangé par défaut dans la bibliothèque WORK L utilation d une bibliothèque implique la déclaration librar <nom_bibliothèque>; Pour accéder à ses packages use <nom_bibliothèque>.<nom_bibliothèque>.all; 18 9

Exemple décodeur Exemple décodeur 2 4 decoder decoder ( ( std_logic_vector(1 std_logic_vector(1 0); 0); Z Z out out std_logic_vector(3 std_logic_vector(3 0) 0) ); ); decoder; decoder; Interface (1) (0) Z(3) Z(2) Z(1) Z(0) of of decoder decoder Z Z "0001" "0001" "00" "00" "0010" "0010" "01" "01" "0100" "0100" "10" "10" "1000" "1000" "11" "11" "XXXX"; "XXXX"; _; _; Fonction (1..0) 0 0 0 1 1 0 1 1 0 0 0 1 Z(3..0) 0 0 0 1 1 0 0 0 1 0 0 0 19 Exemple multiplexeur 41 mux mux ( ( a, a, b, b, c, c, d d s s std_logic_vector(1 std_logic_vector(1 0); 0); out out std_logic); std_logic); mux; mux; mux1 mux1 of of mux mux process process (a, (a, b, b, c, c, d, d, s) s) case case s s "00 "00 a; a; "01" "01" b; b; "10" "10" c; c; "11" "11" d; d; case; case; process; process; mux1; mux1; a b c d S(1) S(0) 20 10

Bascule D rtl rtl of of D_FF D_FF process process (Clock, (Clock, Reset) Reset) if if Reset Reset 1 1 Q 0 ; 0 ; if if rg_edge(clock) Q D; D; if; if; process; process; rtl; rtl; D Clock Reset Flip-flop D Q R Q 21 Compteur baire counter counter generic generic (n (n teger teger 4); 4); ( ( clk clk reset reset count count out out std_logic_vector(n-1 std_logic_vector(n-1 0) 0) ); ); use use ieee.numeric_std.all; ieee.numeric_std.all; counter; counter; bar bar of of counter counter process Pas de détails sur la manière de process (clk, (clk, reset) reset) variable réaler l opérateur. variable cnt cnt unsigned(n-1 unsigned(n-1 0); 0); Le + dique l opération if d crémentation. if reset reset '1' '1' -- -- asnc asnc reset reset cnt cnt (others (others '0'); '0'); elsif elsif rg_edge(clk) rg_edge(clk) cnt cnt cnt cnt + + 1; 1; if; if; count count std_logic_vector(cnt); std_logic_vector(cnt); process; process; rchitectures avancées bar; bar; 22 11

utomate (FSM) Sur la réception d un signal (trigger), génère un signal active de 2 ccles et att un signal accept trigger trigger ( ( clk, clk, reset reset trigger, trigger, accept accept curr_state active active out out std_logic); std_logic); trigger; trigger; trigger State rtl rtl of of trigger trigger Transition tpe tpe state_tpe state_tpe (s0, (s0, s1, s1, s2); s2); Logic signal signal cur_state, cur_state, accept state_tpe; state_tpe; regters regters process process (clk, (clk, reset) reset) reset if if (reset'1') (reset'1') cur_state cur_state s0; s0; elsif elsif rg_edge(clk) rg_edge(clk) cur_state cur_state ; ; if; if; process; process; clk R Output Logic active 23 utomate (suite) process process (cur_state, (cur_state, trigger, trigger, accept) accept) case case cur_state cur_state s0 s0 active active '0'; '0'; if if (trigger (trigger '1') '1') s1; s1; s0; s0; if; if; s1 s1 active active '1'; '1'; s2; s2; s2 s2 active active '1'; '1'; if if (accept (accept '1') '1') s0; s0; s2; s2; if; if; case; case; process; process; S0 accept State Transition Logic trigger S2 clk curr_state Output Logic R S1 24 12

Flot de conception FPG (1) Spécifications Réalation Description comementale ou structurelle Simulation RTL Simulation fonctionnelle Vérifie le fonctionnement logique et le flot de données (pas d analse temporelle) 25 t clk Flot de conception FPG (2) nalse temporelle - Vérifie que les performances reques sont satfaites - nalse temporelle statique Simulation au niveau es - Simulation temporelle - Vérifie que la réalation fonctionne sur la technologie cible Programmation et test - Programmation & et test du composant sur la carte 26 13

Ccle de conception description Description du sstème Textuelle (HDL) VHDL, Verilog Graphique Schéma bloc Graphe d états Table de vérité Design Entr Simulation Snthes Place & Route Simulation Program device & test 27 Ccle de conception simulation Simulation fonctionnelle Indépante du tpe de FPG Pas d formation temporelle Simulation temporelle Simulation après placement et routage timg détaillé Description Simulation Snthèse Placement & Routage Simulation Programmation et test 28 14

Snthèse RTL L entrée est une description HDL Compilation & traduction Génère la lte de noeuds dépante de la technologie Schéma TRL (analse du code HDL) Mappage sur la technologie Mappage sur les structures spécifiques de la technologie LUTs Regtres TM/ROM Blocs DSP utres composants Optimation logique nalse de l implantation Design Entr Simulation Snthèse Place & Route Simulation Program device & test 29 Placement et routage fitter sur le FPG Logiciel fourni par le veur du FPG, spécifique de l de chaque composant FPG Fonctions Placement et routage Edition des contrates nnotation de la lte de noeuds avec les formations temporelles Fichier de configuration Design Entr Simulation Snthes Place & Route Simulation Program device & test 30 15

Exemple Quartus II d ltera Logiciel de conception tégré Plusieurs techniques d entrée textuelles VHDL, Verilog, HDL Editeur de schéma Snthèse logique Placement et routage Simulation nalse temporelle et pusance dsipée Création de la netlt pour l analse temporelle Programmation du composant ISE (Xilx) a des caractértiques semblables 31 16