[PDF] [PDF] Le langage VHDL - EPFL

Eduardo Sanchez 5 Structure d'un programme VHDL library ieee; use ieee std_logic_1164 all; entity toto is port ( ); end toto; architecture test of toto is begin



Previous PDF Next PDF





[PDF] Introduction à VHDL

Conception de circuits en VHDL Simulation en VHDL Synthèse de VHDL - p 2/ 44 Plan s Rappel d'électronique s Introduction à VHDL x Historique x Structure 



[PDF] VHDL

En effet le fonctionnement d'un circuit est généralement décrit par plusieurs modules VHDL Il faut comprendre par module le couple ENTITE/ ARCHITECTURE



[PDF] Cours initiation VHDL - LAAS-CNRS

VHDL Support de cours N Nolhier LAAS/CNRS 7, avenue du Colonel Roche 31077 TOULOUSE Cedex Université Paul Sabatier 1997 N N 1996 



[PDF] Le langage VHDL - EPFL

Eduardo Sanchez 5 Structure d'un programme VHDL library ieee; use ieee std_logic_1164 all; entity toto is port ( ); end toto; architecture test of toto is begin



[PDF] Initiation au langage VHDL - CEA-Irfu

Mots clés VHDL, RTL Liste des Abréviations ASIC application specific integrated circuit DoD Department Of Defense FPGA Field Programmable Gate Array



[PDF] Introduction à la conception numérique en VHDL

11 oct 2018 · Introduction à la conception numérique en VHDL Cours + TP Vivado 2017 4 Windows 10 Pro 64 bits Basys 3 rev C C ALEXANDRE, jeudi 11 



[PDF] VHDL - Logique programmable

VHDL – Logique programmable Partie 2 – La structure d'un programme VHDL © D Giacona D Giacona 2/47 1 Éléments fondamentaux du langage VHDL



[PDF] Le Langage VHDL - Dunod

Une introduction générale présente l'ensemble du sujet: la réalisation (synthèse) et le test des circuits numériques, en utilisant VHDL La description du circuit à



[PDF] Examen langage V H D L

1- a) Quelle est la fonction du programme VHDL ci-dessous process(MCLK) begin if MCLK'event and MCLK='1' then front



[PDF] Introduction au langage VHDL - Université de Bretagne Occidentale

VHDL ▫ VHIC(Very High-speed Integration Circuit) ▫ Hardware VHDL ❑ Conception/simulation de circuits ASIC/FPGA et test ❑ Développé aux USA 

[PDF] vhf frequency list philippines 2019

[PDF] viamonde calendrier 2019 2020

[PDF] viamonde calendrier elementaire 2020 2021

[PDF] viavi solutions inc news

[PDF] viavi solutions sec filings

Le langage VHDL

Eduardo Sanchez

EPFL •Livres conseillés: •John F. Wakerly

Digital design (4th edition)

Prentice Hall, 2005

•Peter J. Ashenden

The designer"s guide to VHDL (3rd edition)

Morgan Kaufmann, 2008

•Peter J. Ashenden

The student"s guide to VHDL (2nd edition)

Morgan Kaufmann, 2008

•James R. Armstrong - F. Gail Gray VHDL design: Representation and synthesis (2nd edition)

Prentice Hall, 2000

•Jacques Weber - Maurice Meaudre Le langage VHDL: Du langage au circuit, du circuit au langage

Masson, 2007

•Roland Airiau - Jean-Michel Bergé - Vincent Olive - Jacques Rouillard VHDL: Langage, modélisation, synthèse (3ème édition)

PPUR, 2003

Eduardo Sanchez 2

•Langage formel pour la spéci?cation des systèmes digitaux, aussi bien au niveau comportemental que structurel •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é, similaire à Ada VHDL VHSIC Very High-Speed Integrated Circuits Hardware Description Language

Eduardo Sanchez 3

Histoire

•1980: Début du projet, ?nancé par le DoD (400M $US) •1982:

Contrat pour Intermetrics, IBM et Texas

•1985: Version 7.2 dans le domaine public •1987:

Standard IEEE 1076 (VHDL-87)

•1993:

Nouvelle version du standard (VHDL-93)

•2001:

Nouvelle version du standard (VHDL-2001)

•2008:

Nouvelle version du standard (VHDL-2008)

Eduardo Sanchez 4

Entité et architecture

•VHDL nous intéresse en tant que langage pour la description, simulation et synthèse des systèmes digitaux •Au plus haut niveau d"abstraction, un système digital est vu comme une "boîte noire", dont on connaît l"interface avec l"extérieur mais dont on ignore le contenu •En VHDL la boîte noire est nommé entité (entity) •Une entité doit toujours être associée avec au moins une description de son contenu, de son implémentation: c"est l"architecture A B

C architecture

entité

Eduardo Sanchez 5

Structure d"un programme VHDL

library ieee; use ieee.std_logic_1164.all; entity toto is port ( end toto; architecture test of toto is begin end test; déclaration des entrées/sorties déclarations de l"architecture corps de l"architecture nom de l"entité nom de l"architecture

Eduardo Sanchez 6

Exemple

c b a reset clk op opb + 0 1 moinsb aopb entité architecture signal processus

Eduardo Sanchez 7

•Les entrées/sorties du système sont les ports de l"entité •Chaque composant interne du système sera un processus (process) de l"architecture •Une architecture est un ensemble de processus •Les processus s"exécutent en parallèle •Les processus de l"architecture sont interconnectés par le biais des signaux (signal) •Quelques notes sur la syntaxe d"un programme VHDL: •pas de di?érentiation entre majuscules et minuscules •format libre •toute phrase termine par un point virgule •le début d"un commentaire est signalé par un double trait ("--"). Le commentaire termine avec la ?n de ligne

Eduardo Sanchez 8

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity exemple is port (a, b : in std_logic_vector(3 downto 0); op, clk, reset : in std_logic; c : out std_logic_vector(3 downto 0)); end exemple; architecture test of exemple is signal moinsb, opb, aopb : std_logic_vector(3 downto 0); begin moinsb <= not b + "0001"; opb <= b when op='0' else moinsb; aopb <= a + opb; process (reset, clk) begin if reset='0' then c <= "0000"; else if (clk'event and clk='1') then c <= aopb; end if; end if; end process; end test; entité architecture processus implicites processus explicite bibliothèque IEEE

Eduardo Sanchez 9

•Résultat de la synthèse:

Eduardo Sanchez 10

Données traitées par VHDL

•Toute donnée traitée par VHDL doit être déclarée comme constante, variable ou signal •Constantes: constant pi : real := 3.1416; constant index_max : integer is 10*N; •Variables: valeur modi?able immédiatement par une a?ectation ( variable stop : boolean; variable etat : CodeDEtat := ST0; •Signaux: modélisation de l"entrée/sortie d"un dispositif. C"est une forme d"onde qui change avec le temps: la modi?cation a lieu à la prochaine itération de la simulation (retard delta)

Eduardo Sanchez 11

•VHDL est un langage fortement typé: toute donnée doit être déclaré avant utilisation, en indiquant son type •Les types prédé?nis sont: •scalaire: integer real enumerated physical •composé: array record •pointeur: acces •I/O: ?le

Eduardo Sanchez 12

•On peut également créer de nouveaux types, en fonction des types prédé?nis. Par exemple: type HuitBits is range 0 to 255; type CodeDEtat is (init, ST1, ST2, exit); type word is array (0 to 31) of bit; type EtatsLogiques is record valeur : integer range -127 to 128; force : integer; end record;

Eduardo Sanchez 13

•Pour la synthèse, les types de données les plus utilisés sont std_logic, pour les données à un bit, et std_logic_vector, pour les bus •Ces types ne sont pas prédé?nis: pour les utiliser, il faut déclarer le paquet (package) std_logic_1164, qui fait partie de la bibliothèque (library) IEEE: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

Eduardo Sanchez 14

•Une donnée de type std_logic possède une valeur parmi neuf possibles: •'U' uninitialized •'X' forcing unknown •'0' forcing 0 •'1' forcing 1 •'Z' high impedance •'W' weak unknown •'L' weak 0 (pull-down) •'H' weak 1 (pull-up) •'-' don"t care •Pour une a?ectation, les valeurs utilisées sont: 'X', '0', '1', 'Z'

Eduardo Sanchez 15

Opérateurs

•Opérations logiques: •and or nand nor xor xnor •Opérations de comparaison: •Opérations de décalage •sll srl sla sra rol ror •Opérations d"addition: •Opérations de signe: •Opérations de multiplication: •* / mod rem •Opérations diverses: •not abs **

Eduardo Sanchez 16

Signaux (introduction)

•Pour connecter les di?érents composants d"un système, VHDL utilise les signaux (signal), équivalent des ?ls ou câbles d"interconnexion dans le monde réel •Exemple: signal s : std_logic := '0'; s <= '1' after 10 ns, '0' after 18 ns, '1' after 25 ns;

0 10 18 25 t (ns) 1

0 temps actuel de simulation initialisation (à éviter dans la synthèse) aectation

Eduardo Sanchez 17

•On peut associer certains attributs aux signaux, qui produisent une valeur. Deux exemples d"attributs sont: •s'event: vrai si un événement arrive pendant le delta présent (c"est-à-dire, si le signal s change de valeur) •s'active: vrai si une transaction arrive pendant le delta présent (c"est-à-dire, si le signal s est évalué, qu"il change ou pas de valeur) •Un signal est toujours global à une architecture donnée

Eduardo Sanchez 18

Processus (process)

•Une architecture en VHDL est un ensemble de processus exécutés en parallèle (en concurrence) •L"ordre relatif des processus à l"intérieur d"une architecture n"a pas d"importance •Il existe deux types de processus: •le processus implicite ou phrase concurrente •le processus explicite architecture toto of test is begin c <= a and b; z <= c when oe='1' else 'Z'; seq: process (clk, reset) begin end process; end toto; processus explicite processus implicites

Eduardo Sanchez 19

•Un processus explicite est un ensemble de phrases exécutées séquentiellement: à l"intérieur d"un processus l"ordre des phrases a donc une importance •Un processus ne peut pas être déclaré à l"intérieur d"un autre processus procA: process (a, b) begin end process; corps du processus déclarations du processus étiquette optionnelle liste de sensibilité

Eduardo Sanchez 20

•Les phrases séquentielles d"un processus s"exécutent en boucle in?nie •L"exécution de la boucle s"arrête seulement lors d"un wait on sur une liste de signaux: l"exécution redémarre lorsque l"un des signaux de la liste change de valeur •La plupart des outils de synthèse n"acceptent qu"un wait par processus, placé au début ou à la ?n du processus •Un wait on à la ?n d"un processus peut être remplacé par une liste de sensibilité, placée juste après le mot clé process. La liste de sensibilité est incompatible avec un wait: c"est l"un ou l"autre •Tout signal dont le changement de valeur a une in?uence sur le processus doit apparaître dans la liste de sensibilité. Dans le cas contraire, la simulation pourrait donner des résultats faux puisqu"elle ne serait pas enclenchée. Pour éviter des erreurs, on peut mettre dans la liste de sensibilité tous les signaux testés ou apparaissant à droite d"une a?ectation, à l"intérieur du processus

Eduardo Sanchez 21

•L"évaluation des signaux à l"intérieur d"un processus se fait séquentiellement, mais l"a?ectation des nouvelles valeurs se fait au même moment: pendant le wait ident: process déclarations begin phrases séquentielles end process ident; (A, B) wait on A, B; liste de sensibilité étiquette optionnellle •Exemple 1: entity toto is port (a: in std_logic; b: out std_logic); end toto; architecture basic of toto is signal c: std_logic; begin process (a) begin c <= a; if c='1' then b <= a; else b <= '0'; end if; end process; end basic;

Eduardo Sanchez 23

•Le signal c est a?ecté à a au début du processus, mais sa valeur est réellement mise à jour seulement à la ?n du processus. Pour cette raison, lors du if...then la valeur de c qui est testée est celle qui avait le signal à la ?n de l"exécution précédente du processus •Supposons le cas de la ?gure suivante, avec a et b égaux à '0' au début de la simulation (temps ): delay a b c

Eduardo Sanchez 24

•Au temps , a a changé. Comme le processus est sensible à a, le simulateur redémarre l"exécution du processus. Le signal c est a?ecté à a, et la condition (c='1') est testée. Le résultat du test sera false, puisque c est toujours égal à '0': la mise à jour à la valeurquotesdbs_dbs17.pdfusesText_23