Chapitre 01: Structure d'un module VHDL

Slides:



Advertisements
Présentations similaires
Ing Mohamed MASMOUDI Cours VHDL Ing Mohamed MASMOUDI
Advertisements

Décrire un circuit numérique avec VHDL
Cours #6 Conception d’unités de contrôle
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 #7 Vérification d’un modèle VHDL
COMPOSANTS PROGRAMMABLES
Modélisation VHDL d’un chemin des données
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
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.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Entrées et sorties par.
Advanced Boolean Equation Language
Méthodologie de conception Outils de conception
Concepts intermédiaires de VHDL
Synthèse et implémentation d’un circuit combinatoire
Introduction au VHDL - R.WEBER - Polytech'Orleans
Implémentation de la division sur FPGA
VHDL pour circuits séquentiels
Le VHDL Programmation des CPLD et FPGA avec Quartus II ENSET d'Oran / IUFM Aix Marseille - mai
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Le Langage JavaScript pour le web
VHDL Structures de bases Synth è se d ’ op é rateurs standards.
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Représentation des nombres réels
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Logique Combinatoire.
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Pointeurs et langage C.
Description d’un circuit combinatoire en VHDL
Langage de manipulation de données (LMD)
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Algorithmique et programmation de modèles numériques
Arithmétique entière en VHDL
Semaine #1 INF130 par Frédérick Henri.
AO (Architecture des ordinateurs)
Architecture de machines Eléments de logique
Principes de programmation (suite)
L’Instruction de Test Alternatif
Algorithmiques Abdelbasset KABOU
SIF-1053 Architecture de ordinateurs
Un Algorithme , c'est Quoi ?
Synthèse et implémentation de circuits arithmétiques sur FPGA
Tests de boîte blanche.
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Algorithmique & Langage C IUT GEII S1 Notes de cours (deuxième partie)
Cours N°9: Algorithmiques Les Tableaux 1
Programmation en C++ C++ de base
Structure D’une Base De Données Relationnelle
VALMEM Traduction automatique d'une description comportementale VHDL + annotations temporelles en automates temporisés A. Bara, E. Encrenaz LIP6 VALMEM.
PROGRAMMATION ET ENSEIGNEMENT
Synthèse 8 : Langage informatique
Calcul Scientifique Initiation à SCILB
Architecture des processeurs « Partie matérielle » CE311/CE317 Module « Systèmes matériels et logiciels » Crédit : 5 (en 2 parties) Vincent Beroulle Bureau.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
SYSTèMES à évènements discrets
Les réseaux logiques programmables
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
Définition : 2 Les structures de contrôle conditionnelles permettent à un programme de modifier son traitement en fonction d’une condition.
Compléments sur Python (EduPython)
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
L.P.M Chapitre N°3 Les structures de contrôle itératives Dégager le traitement itératif Problème Nombre d’itération ?? Inconnu à l’avance Connu à l’avance.
Python Nicolas THIBAULT
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Transcription de la présentation:

dhiabi.fathi@yahoo.fr f.dhiabi@univ-biskra.dz

Chapitre 01: Structure d'un module VHDL Qu'est ce que VHDL ? Structure d’une description VHDL  Le bibliothèque L’entité L’architecture Le type Les Objets (Signaux, Constantes, Alias et Variables)

1.Qu'est ce que VHDL ? L'acronyme VHDL signie Very High Speed Integrated Circuit (VHSIC) Hardware Description Langage (HDL). VHDL est un langage de programmation complet. Pour la description d’ un matérielle logique.

2. Structure d’une description VHDL Une description VHDL est composée de trois parties indissociables à savoir : Le bibliothèque L’entité (ENTITY), Elle décrit l'interface du circuit avec le monde extérieur. L’architecture (ARCHITECTURE), Elle décrit le fonctionnement du circuit.

2. Structure d’une description VHDL Example 01 : Un décodeur 2 parmi 4.

2. Structure d’une description VHDL Example 01 : Un décodeur 2 parmi 4. --1. Le bibliothèque library ieee; Use ieee.std_logic_1164.all; Use ieee.numeric_std.all;

2.Structure d’une description VHDL Example 01 : Un décodeur 2 parmi 4. --2. L’entité (ENTITY) entity DECOD1_4 is port(IN0, IN1: in std_logic; D0, D1, D2, D3: out std_logic); end DECOD1_4;

2.Structure d’une description VHDL Example 01 : Un décodeur 2 parmi 4. --3. L’architecture architecture DESCRIPTION of DECOD1_4 is begin D0 <= (not(IN1) and not(IN0)); D1 <= (not(IN1) and IN0); D2 <= (IN1 and not(IN0)); D3 <= (IN1 and IN0); end DESCRIPTION;

2.Structure d’une description VHDL Example 02 : essai.vhd

3. Déclaration des bibliothèques   Toute description VHDL utilisée pour la synthèse a besoin de bibliothèques. Elles contiennent les définitions des types de signaux électroniques, des fonctions et sous programmes permettant de réaliser des opérations arithmétiques et logiques : 

3. Déclaration des bibliothèques   Library ieee; Déclaration standard. Use ieee.std_logic_1164.all;  Permet de définir les types std_logic (‘X’,’U’,’L’,’H’,’0’,’1’) Use ieee.std_logic_arith.all; Permet d’utiliser les opérateurs arthmétiques ‘+’,’-‘,’*’,’/’ pour les types std_logic Use ieee.std_logic_signed.all; Le type std_logic avec signed value. Use ieee.std_logic_usigned.all; Le type std_logic avec unsigned value. Use ieee.numeric_std.all; Utilisation les valeurs décimal pour le type std_logic. Use ieee.std_logic_textio.all; Utilisation les valeurs ASCII pour le type std_logic. Use ieee.numeric_bit.all; Utilisation les valeurs décimal pour le type std_logic. Use ieee.math_real.all; Use ieee.math_complex.all;

Déclaration des bibliothèques   Note : IEEE: Institut of Electrical and Electronics Engineers La directive Use permet de sélectionner les bibliothèques à utiliser La directive All pour utiliser tu les application

3. Déclaration des bibliothèques  La différance entre Unsigned et Signed :

3. Déclaration des bibliothèques  La différance entre Unsigned et Signed :

3. Déclaration des bibliothèques   IEEE.STD_LOGIC_1164.all Permet de définir les types, opérateurs et fonctions de conversion de base

3. Déclaration des bibliothèques   IEEE.numeric_std.all Définit les types signed et unsigned. Un vecteur représente alors un nombre signé ou non signé représenté en C2 Permet d’utiliser les opérateurs arthmétiques + et x sur des vecteurs de bits Fournit des fonctions de conversion entre entiers et vecteurs

3. Déclaration des bibliothèques   IEEE.numeric_std.all Définit les types signed et unsigned. Un vecteur représente alors un nombre signé ou non signé représenté en C2 Permet d’utiliser les opérateurs arthmétiques « + » ,« x », « - », « / » sur des vecteurs de bits Fournit des fonctions de conversion entre entiers et vecteurs

3. Déclaration des bibliothèques   IEEE.numeric_std.all

4. L’entité Déclaration de l’entité. Elle permet de définir le NOM de la description VHDL ainsi que les entrées et sorties utilisées, l’instruction qui les définit c’est port : Syntaxe: entity NOM_DE_L_ENTITE is port ( Description des signaux d’entrées /sorties …); end NOM_DE_L_ENTITE;

4. L’entité  Example: entity SEQUENCEMENT is port ( CLOCK : in std_logic; RESET : in std_logic; Q : out std_logic_vector(1 downto 0)); end SEQUENCEMENT;

4. L’entité  Dans l’instruction port . On doit définir pour chaque signal : le NOM_DU_SIGNAL, le sens et le type. Syntaxe: NOM_DU_SIGNAL : sens type; Exemple: CLOCK: in std_logic; BUS : out std_logic_vector (7 downto 0);

4. L’entité  Le SENS du signal.

4. L’entité Le SENS du signal. - in : pour un signal en entrée. out : pour un signal en sortie. inout : pour un signal en entrée sortie - buffer : pour un signal en sortie mais utilisé comme entrée dans la description.

4. L’entité Le SENS du signal. Note : Le mode in protège le signal en écriture Le mode out protège le signal en lecture Remarque : le nom d’un fichier VHDL doit être celui de l’entité qu’il contient

4. L’entité  Le type du signal: Le TYPE utilisé pour les signaux d’entrées / sorties est définit par: bit std_logic bit_vector std_logic_vector…. etc

4. L’architecture  L’architecture (ARCHITECTURE), Elle décrit le fonctionnement du circuit par les relations entre les entrées et les sorties. On peut avoir un fonctionnement: Combinatoire séquentiel voire les deux séquentiel et combinatoire.

4. L’architecture  Les descriptions des architectures:  Trois grands formalismes coexistent pour décrire les architectures : flot de données : on écrit pour les fonctions booléennes (à réserver aux plus petits circuits) , c'est lui qu'on a utilisé pour implémenter le demi-additionneur (example). structurel : on décrit le circuit comme une série des boîtes noires interconnectées au moyen de signaux (utilisé pour des circuits moyens ou grands), c'est lui qu'on a utilisé pour implémenter un additionneur complet à l'aide de quatre demi-additionneurs comportemental : de manière très semblable à un langage de programmation informatique, on précise le fonctionnement voulu à l'aide d'une suite d'instructions de contrôles (conditions, boucles, etc…), dans un process.

4. L’architecture  Exemple flot de données

4. L’architecture  Exemple structurel

4. L’architecture  Exemple structurel

4. L’architecture  Exemple structurel

4. L’architecture  Exemple wave simulation

4. L’architecture 3. Exemple comportemental ---- Comparateur 8 bits : library ieee; use ieee.std_logic_1164.all;   entity eqcomp4 is port(a, b: in std_logic_vector (7 downto 0) equals: out std_logic); end eqcomp4; architecture behavioral of eqcomp4 is begin comp: process (a, b) if a = b then equals <= ‘1’; else equals <= ‘0’; end if; end process comp; end behavioral;

Les Objets (Signaux, Component Constantes, Alias et Variables)

Chapitre 2 Les instructions du mode concurrent dans logique combinatoire Les opérateurs: Les opérateurs utilisés dans l’architecture deVHDL du mode concurrent dans logique combinatoire, sont : Concaténation. logiques décalages. Arithmétiques. relationnels. affectation

2.1 Cancaténation. Opérateur de concaténation : & Cet opérateur permet de joindre des signaux entre eux. Exemple : Soit A et B de type 3 bits et S1 de type 8 bits A = "001" et B ="110" S1 <= A & B & "01" ; S1 prendra la valeur suivante après cette affectation S1 = "00111001"

2.2. Opérateurs logiques :

2.2. Opérateurs logiques :

2.2. Opérateurs logiques : Exemples 1: S1 <= A sll 2 ; -- S1 = A décalé de 2 bits à gauche. S2 <= A rol 3 ; -- S2 = A avec une rotation de 3 bits à gauche S3 <= not (R); -- S3 = R   Exemples 2: (Remarque) Pour réaliser des décalages logiques en synthèse logique, il est préférable d’utiliser les instructions suivantes : Décalage à droite : Si A est de type std_logic_vector(7 downto 0) S1 <= ‘0’ & A(7 downto 1); -- décalage d’un bit à droite S1 <= "000" & A(7 downto 3); -- décalage de trois bits à droite Décalage à gauche : Si A est de type std_logic_vector(7 downto 0) S1 <= A(6 downto 0) & ‘0’; -- décalage d’un bit à gauche S1 <= A(4 downto 0) & "000"; -- décalage de trois bits à gauche 

2.3. Opérateurs arithmétiques: Pour pouvoir utiliser les opérateurs ci-dessus il faut rajouter les bibliothèques suivantes au début du fichier VHDL:   Use ieee.numeric_std.all ; Use ieee.std_logic_arith.all ;

2.3. Opérateurs arithmétiques:

2.3. Opérateurs arithmétiques: Exemples :   S1 <= A – 3 ; -- S1 = A – 3 -- On soustrait 3 à la valeur de l’entrée / signal A S1 <= S1 + 1 ; -- On incrémente de 1 le signal S1 

2.3. Opérateurs arithmétiques: Note : Les bases numériques utilisées pour les bus peuvent être : BINAIRE, exemple : BUS <= "1001" ; -- BUS = 9 en décimal HEXA, exemple : BUS <= X"9" ; -- BUS = 9 en décimal OCTAL, exemple : BUS <= O"11" ; -- BUS = 9 en décimal

2.4. Opérateurs relationnels: Ils permettent de modifier l’état d’un signal ou de signaux suivant le résultat d’un test ou d’une condition. En logique combinatoire ils sont utilisés avec les instructions : - when … else … - with …. Select …. Voir ci-dessous.

2.4. Opérateurs relationnels:

2.5. Les instructions du mode « concurrent »: 1. Affectation conditionnelle :Cette instruction modifie l’état d’un signal suivant le résultat d’une condition logique entre un ou des signaux, valeurs, constantes. SIGNAL <= expression when condition [else expression when condition] [else expression];  

2.5. Les instructions du mode « concurrent »: 1. Affectation conditionnelle :Cette instruction modifie l’état d’un signal suivant le résultat d’une condition logique entre un ou des signaux, valeurs, constantes. Exemple N°2 : -- Structure évoluée d’un multiplexeur 4 vers 1 S2 <= E1 when (SEL="00" ) else E2 when (SEL="01" ) else E3 when (SEL="10" ) else E4 when (SEL="11" ) else ‘0’;  

2.5. Les instructions du mode « concurrent »: Note : l’instruction [else expression] n’est pas obligatoire mais elle fortement conseillée, elle permet de définir la valeur du SIGNAL dans le cas où la condition n’est pas remplie 

2.5. Les instructions du mode « concurrent »: 2. Affectation sélective : Cette instruction permet d’affecter différentes valeurs à un signal, selon les valeurs prises par un signal dit de sélection.   with SIGNAL_DE_SELECTION select SIGNAL <= expression when valeur_de_selection, [expression when valeur_de_selection,] [expression when others];

2.5. Les instructions du mode « concurrent »: 2. Affectation sélective : Exemple N°1 :   -- Multiplexeur 4 vers 1 with SEL select S2 <= E1 when "00", E2 when "01", E3 when "10", E4 when "11", '0' when others;

Note: when others est nécessaire car il faut toujours définir la valeur du SIGNAL.