rapport tp vhdl

Upload: abdessamad-chbicheb

Post on 16-Oct-2015

61 views

Category:

Documents


1 download

TRANSCRIPT

  • Ecole National des Sciences Appliques Universit Hassan 1er

    Khouribga Settat

  • Introduction gnrale

    Spcifications

    VHDL est un langage de description matrielle. la diffrence des langages informatiques classiques,

    VHDL ne vise pas une excution, son but est de permettre la description de tout systme lectronique, den

    valider le fonctionnement avant de passer la mise en uvre matrielle.

    La conception dun systme passe par sa description. Cette description est toujours ralise en deux tapes

    au minimum. La premire tape consiste dcrire le systme comme une boite noire, alors que la seconde

    sintresse la description interne de la boite noire. Si la description de la vue externe (boite noire) ne pose

    gnralement pas de problme, la vue interne (larchitecture) peut quant elle tre ralise selon plusieurs

    modles de description.

    Rappelons brivement les trois types de description utilisables en VHDL :

    Description comportementale : il sagit dune description indiquant le comportement dun

    systme. Gnralement ralise sous la forme de processus, elle sapparente du code

    procdural classique.

    Description structurelle : il sagit dune description schmatique dun systme. Sappuyant sur

    des composants disponibles dans une bibliothque et sur des signaux. Cette description est

    lexacte reprsentation du schma lectrique du systme.

    description flot de donnes : il sagit dune description indiquant comment un flot de donnes

    traverse un systme. Le flot des sorties est exprim en fonction du flot des entres.

    Dbuter un projet (initialisation du projet)

    Lorsque vous dbutez votre projet, vous devez configurer loutil ModelSim afin quil organise correctement

    les diffrents fichiers que vous allez crer et manipuler.

    laide de Windows, crez un rpertoire de travail sur votre espace disque Z :

    /VHDL/Projet

    Dans ModelSim, modifier le rpertoire de travail par le menu :

    File > Change directory

    Slectionnez le rpertoire que vous venez de crer Z: /VHDL/Projet.

  • Pour pouvoir stocker correctement vos units de conception VHDL, vous devez crer une

    bibliothque de travail :

    File > New > Library

    Laisser les noms work comme librairie de travail et physique, et cocher a new library and a logical mapping

    to it. Cest dans cette bibliothque que seront places toutes les entits compile sans erreur.

    Vous devez ensuite crer un projet :

    File > New > Project

    Tapez un nom de projet, par exemple projet, laisser coch copy library mappings et valider.

    Loutil vous demande dajouter des items dans le projet. Pour linstant, cliquer sur Close.

    Vous pouvez ensuite passer au dveloppement de votre systme et aux compilations des diffrentes

    spcifications.

    Reprise dun projet

    Lorsque vous reprenez votre travail sur un projet que vous avez dj initialis et sur lequel vous avez dj

    travaill, vous devez vous ouvrir le projet souhait.

    Aprs le lancement du logiciel ModelSim, placez-vous dans votre rpertoire de travail sur votre

    espace disque par le menu :

    File > Change directory

    Slectionnez le rpertoire de travail Z : /VHDL/Projet.

    Ouvrez votre projet :

    File > Open > Project

    Slection du projet.

    Recherchez le fichier.mpf qui correspond votre projet (normalement, ce fichier doit tre dans le rpertoire

    que vous avez slectionn par le menu prcdent).

  • La compilation

    Le lancement du compilateur seffectue par le menu :

    Compile> Compile

    du logiciel. Une fentre souvre alors et vous donne accs aux fichiers de votre rpertoire de travail.

    Slectionnez un fichier et cliquez sur Compile. La phase de compilation est alors active.

    La simulation

    Pour lancer le simulateur, slectionnez le menu Simulate> Start simulation

    Une fentre est alors ouverte et vous propose lensemble des units prsentes dans la bibliothque.

    Slectionnez une entit SIMULABLE (ou une configuration), cest dire une entit autonome qui

    instancie lentit simuler et qui gre les signaux dentre de lentit simuler. Les entits que vous

    allez dvelopper seront stockes dans la librairie Work ;

    Ouvrez ensuite les fentres de simulation par le menu View>Wave

    Par dfaut, lintervalle de simulation est de 100 ns, vous pouvez changer cette valeur en choisissant

    le menu :

    Simulate> Runtime options

    Pour visualiser les signaux de lentit de test, slectionnez TestPorteET dans longlet sim du

    workspace, cliquez sur Add , puis Add to wave . La fentre des chronogrammes doit alors faire

    apparatre la liste des signaux de lentit.

    Pour lancer un pas de simulation (de 100 ns), choisissez Simulate> Run> Run

    Pour recommencer une simulation, choisissez Simulate> Run> Restart .

  • Objectif du TP

    Lobjectif de TP consiste :

    Ecrire un programme VHDL dun multiplexeur 4 vers 1 en utilisant les deux instructions conditionnelle et

    slective, ainsi dcrire en VHDL une bascule D, puis une unit arithmtique et logique (UAL) puis un

    Compteur synchrone et asynchrone.

    Les TP raliser

    TP1 : Un Multiplexeur 4*1

    TP2: Une Bascule D

    TP3: Un Compteur

    TP4: Une unit Arithmtique et Logique

    TP5: Affichage de 7 segments

    TP6: Gestion dun CARREFOUR

  • TP1 : Multiplexeur

    Code VHDL

    Lexcution de la simulation

    library ieee;

    use ieee.std_logic_1164.all;

    entity mux is

    port(E0,E1,E2,E3:in std_logic; sel:in std_logic_vector(1 downto 0) ; S:out std_logic);

    end mux;

    architecture archimux of mux is

    begin

    with sel select

    S

  • TP2 : Bascule D

    Code VHDL

    Lexcution de la simulation

    Library ieee;

    Use ieee.std_logic_1164.all;

    Use ieee.numeric_std.all;

    Use ieee.std_logic_unsigned.all;

    entity BASCULED is

    port (

    D,CLK : in std_logic;

    S : out std_logic);

    end BASCULED;

    architecture DESCRIPTION of BASCULED is

  • TP3 : Compteur

    Compteur Simple

    Code VHDL

    Lexcution de la simulation

    LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

    ENTITY compteur IS

    PORT (clk : IN STD_LOGIC;compt_sortie : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);horloge_sortie : OUT

    STD_LOGIC);

    END compteur;

    ARCHITECTURE rtl OF compteur IS

    SIGNAL s_compt_sortie : STD_LOGIC_VECTOR(4 DOWNTO 0);

    BEGIN

    PROCESS (clk)

    BEGIN

    IF clk'EVENT AND clk = '1' THEN

    IF s_compt_sortie >= 23 THEN

    s_compt_sortie

  • Lexcution de la simulation

    Compteur Synchrone

    Library ieee;Use ieee.std_logic_1164.all;Use ieee.numeric_std.all;Use ieee.std_logic_unsigned.all;

    entity compteursyn is

    PORT (CLOCK : in std_logic;RESET : in std_logic;Q : out std_logic_vector (2 downto 0));

    end compteursyn ;

    architecture DESCRIPTION of CMP3BITS is

    signal CMP: std_logic_vector (2 downto 0);

    begin

    process (CLOCK)

    begin

    if (CLOCK ='1' and CLOCK'event) then

    if RESET ='1' then CMP

  • Lexcution de la simulation

    Compteur aSynchrone

    Library ieee;Use ieee.std_logic_1164.all;Use ieee.numeric_std.all;Use ieee.std_logic_unsigned.all;

    entity CMP3BITS is

    PORT (CLOCK : in std_logic;RESET : in std_logic;Q : out std_logic_vector(2 downto 0));

    end compterAsyn;

    architecture DESCRIPTION of CMP3BITS is

    signal CMP: std_logic_vector (2 downto 0);

    begin

    process (RESET,CLOCK)

    begin

    if RESET ='1' then

    CMP

  • Lexcution de la simulation

  • TP4 : Unit Arithmtique et Logique

    Code VHDL

    Lexcution de la simulation

    Library ieee;Use ieee.std_logic_1164.all;Use ieee.numeric_std.all;Use ieee.std_logic_unsigned.all;

    entity CMP3BITS is

    PORT (CLOCK : in std_logic;RESET : in std_logic;Q : out std_logic_vector(2 downto 0));

    end compterAsyn;

    architecture DESCRIPTION of CMP3BITS is

    signal CMP: std_logic_vector (2 downto 0);

    begin

    process (RESET,CLOCK)

    begin

    if RESET ='1' then

    CMP

  • TP5 : Affichage de 7 segments

    Code VHDL

    Lexcution de la simulation

    library ieee; use ieee.std_logic_1164.all;entity BCD_2_7SEG is

    port( BIN : in STD_LOGIC_VECTOR(3 downto 0);ORTIE : out STD_LOGIC_VECTOR(6 downto 0)) ; end BCD_2_7SEG;

    architecture COMPORTEMENT of BCD_2_7SEG is

    begin

    with BIN select

    SORTIE

  • TP6 : Gestion de carrefour

    Code VHDL

    library ieee; use IEEE.std_logic_1164.all; library synopsys ; library std_developerskit;

    ENTITY feux1 IS

    PORT(RAZ,hor1 :in std_logic; v1,v2,r1,r2,o1,o2 :out std_logic);

    END feux1;

    ARCHITECTURE diagramme Of feux1 IS

    TYPE etat_17 IS (INIT ,v11,v12,v13,v14,v15,v16,v17,v18,or1,sec,v21,v22,v23,v24,v25,or2); SIGNAL etat, nextetat : etat_17;

    BEGIN DEFIN_ETAT : PROCESS(RAZ,hor1 BEGIN

    if RAZ = '1' THEN etat

  • Lexcution de la simulation

    Suite de la simulation

  • Conclusion

    Daprs la ralisation de ce TP, nous avons pu aboutir et apporter une rponse notre

    problmatique qui consiste dcrire et simuler la rponse dune composante lectronique

    en utilisant Modelsim et le langage VHDL, ce TP nous a aid approfondir et laborer nos

    connaissances en VHDL ainsi, se familiariser correctement avec Modelsim, nous avons

    acquis et dvelopp des qualits, aptitudes et intrts. Ce qui va tre bnfique notre dans

    cursus d'tude.