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.
Top Related