Vous êtes sur la page 1sur 29

MINI PROJET-VHDL

PORTAIL A 2 VANTAUX

Réalisé Par : Encadré Par :


ES :SOUBAAI MOUAD _Mr. A.TOUHAMI

_SALAMI Abderrahman

Année Universitaire 2018/2019

P a g e 1 | 29
LISTE DES FIGURES

Figure 1 : Vue générale du mini projet.............................................................6


Figure 2 : Le diagramme d’état de la machine.................................................8
Figure 3 : Schéma de la machine......................................................................12
Figure 4 : Création d’un projet.........................................................................14
Figure 5 : Propriétés des composants...............................................................15
Figure 6 : Le choix du type de source.............................................................15
Figure 7 : Choix du modèle du graphe d’état..................................................16
Figure 8 : choix du type de reset.....................................................................16
Figure 9 : Définition des sorties pour chaque état...........................................17
Figure 10 : définition des conditions de transition..........................................17
Figure 11 : Graphe d’état du mini projet sous XILINX.................................18
Figure 12 : La compilation du graphe d’état...................................................19
Figure 13 : Le code VHDL du mini projet sous XILINX...............................19
Figure 14 : State Bench...................................................................................20
Figure 15 : La simulation à partir le graphe d’état..........................................21
Figure 16 : Exportation du programme VHDL...............................................22
Figure 17 : fenêtre du GRAPHEPORTAIL.vhd..............................................22
Figure 18 : Schéma bloc du notre mini projet.................................................23
Figure 19 : Schéma interne du notre mini projet.............................................23
Figure 20 : fenêtre pour simuler le mini projet à partir du programme
VHDL............................................................................................24
Figure 21 : Réglage du clock...........................................................................25
Figure 22 : Simulation du mini projet à partir du programme VHDL.............25
Figure 23 : Les chronogrammes de la simulation............................................26

P a g e 2 | 29
LISTE DES TABLEAUX

Tableau 1 : La table d’état de la machine.......................................................9


Tableau 2 : Table de Karnaugh de O.............................................................10
Tableau 3 : Table de Karnaugh de F..............................................................10
Tableau 4 : Table de Karnaugh de e1+ pour e1=0..........................................10
Tableau 5 : Table de Karnaugh de e1+ pour e1=1..........................................10
Tableau 6 : Table de Karnaugh de e0+ pour e1=0..........................................11
Tableau 7 : Table de Karnaugh de e0+ pour e1=1..........................................11

P a g e 3 | 29
TABLE DES MATIÈRES

Liste des figures................................................................................................2


Liste des tableaux.............................................................................................3
Table des matières............................................................................................4
Cahier des charges...........................................................................................6
CHAPITRE 1 : Partie théorique...................................................................7
1. Choix de types de machine d’état.......................................................8
2. Identification des entrées et des sorties..............................................8
3. Le graphe d’état..................................................................................8
4. La table d’état.....................................................................................9
5. Les expressions des états futurs et des sorties....................................9
6. Schéma de la machine........................................................................11
CHAPITRE 2 : Exécution du mini projet..................................................13
1. Introduction à XILINX ISE Fondation..............................................14
2. La Simulation à partir du logiciel XILINX.......................................14
2.1. La Simulation à partir du graphe d’état.....................................14
2.2. La Simulation à partir du programme VHDL............................21
Conclusion.......................................................................................................27

P a g e 4 | 29
CAHIER DES CHARGES

Principe de fonctionnement :

Figure 1 : Vue générale du mini projet

Lorsqu'un conducteur s'approche de son garage, il utilise sa télécommande pour


ouvrir le portail.
Le moteur du portail se met en marche et actionne le système d'ouverture.
Une fois que le portail atteint sa position ouverte maximale, un contact est activé et
arrête le mouvement d'ouverture.
Le portail reste ouvert jusqu'à ce qu'un nouveau bouton soit pressé sur la
télécommande, déclenchant la fermeture du portail (le moteur tourne dans l'autre
sens).
Lorsque le portail atteint sa position fermée, un autre contact est activé et arrête le
mouvement de fermeture.

P a g e 5 | 29
Chapitre 1 :

Partie théorique

P a g e 6 | 29
1. Choix de type de machine d’état :
Les machines à états peuvent être de deux types différents modeste projet
nous avons choisi de travailler avec la machine de Moore en utilisant la
bascule D.

2. Identification des entrées et des sorties :


Notre système possède trois entrées et deux sorties qui sont :
 Variable d’entrées :
T : Variable logique à 1 quand la télécommande est actionnée.
PO : Variable logique à 1 quand le portail est ouvert (Ouvert complètement).
PF : Variable logique à 1 quand le portail est fermé (Fermé complètement).

 Variable de sorties :
O : Quand O est à 1 le portail s’ouvre.
F : Quand F est à 1, le portail se ferme.

3. Les états de machine :


D'après les spécifications du cahier de charge, le portail automatique a 4 états possibles :

 E0=00 : Le moteur est en arrêt et le portail ne s’ouvre pas ; sortie = 00 ;

 E1=01 : Le moteur est en marche et le portail s’ouvre ; sortie = 10 ;

 E2=10 : Le moteur est en arrêt et le portail ne se ferme pas ; sortie = 00 ;

 E3=11 : Le moteur est en marche et le portail se ferme ; sortie = 01 ;

P a g e 7 | 29
4. Le graphe d’état :
!T

E0
00 T
PF

E1
E3 !PO
!PF 10
01

PO
T E2
00

!T
Figure 2 : Le diagramme d’état de la machine

P a g e 8 | 29
5. Table d’évolution :

ETAT ACTUEL : LES ENTREES : ETAT FUTUR : LES SORTIES :


e1 e0 T PO PF e1+ e0+ O F

0 0 0 X X E0 0 0 0 0
E0
0 0 1 X X E1 0 1 1 0

0 1 X 0 X E1 0 1 1 0
E1
0 1 X 1 X E2 1 0 0 0

1 0 0 X X E2 1 0 0 0
E2
1 0 1 X X E3 1 1 0 1

1 1 X X 0 E3 1 1 0 1
E3
1 1 X X 1 E0 0 0 0 1

Tableau 1 : La table d’état de la machine.

6. Les expressions des états futurs et les expressions des


sorties :
- Les expressions des sorties :
e0 e0
e1 0 1 0 1
e1

0 0 1 0 0 0

1 0 0 1 0 1

Tableau 2 : Table de Karnaugh de O Tableau 3 : Table de Karnaugh


O= e1 . e0 (3) F = e1 . e0 (4)
P a g e 9 | 29
- Les expressions des états futurs (e1+ , e0+) :

Pour e1=0 : Pour e1=1 :

TableauPO4 PF
: Table de Karnaugh de e1+ TableauPO5PF
: Table
00 01 11 10 0 0de Karnaugh
01 1 1 de1 e1+
0
e0 T pour e1=0 e0 T pour e1=1
0 0 0 0 0 0 0 0 1 1 1
1
e1+ = e0 . PF . e1 + e0 . e1 + PF . e1 (1)
0 1 0 0 0 0
0 1 1 1 1 1
Pour e1=0 : Pour e1=1 :
1 1 0 1 1 0
1 1 1 0 0 1
PO PF PO PF
00 01 11 10 00 01 11 10
e01 T0 0 1 1 0 e0 T
1 0 1 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0

0 1 0 1
1 1 1 1 1 1 1 1

1 1 1 1 0 0 1 1 0 0
1 1

1 0 1 1 0 0

Tableau 6 : Table de Karnaugh de e0+ Tableau 7 : Table de Karnaugh de e0+


pour e1=0 pour e1=1

e0+ = e0 . T + e0 . P0 . e1 + e0 . PF . e1 (2)

7. Schéma de la machine :

Le schéma structurel de notre système sera le suivant :

- C C E : Circuit combinatoire d’entrée.


- R E : Registre d’état.
- C C S : Circuits combinatoire de sorties.
- H : Horloge.
P a g e 10 | 29
- D0 et D1 : Bascules D.

Figure 3 : Schéma de la machine.

Cette structure sera validée en simulation sur le logiciel XILINX 10.1

P a g e 11 | 29
Chapitre 2 :

Partie pratique

P a g e 12 | 29
1. Introduction à XILINX ISE Fondation :

Le logiciel XILINX est un logiciel de description, de simulation, et de


programmation de circuits et systèmes numériques sur des composants
programmables. Il permet aussi la description de circuits numériques sous forme
de schémas logiques, de machines à états finis ou en langages de description
matériel (VHDL, Verilog, ABEL), la compilation, la simulation
comportementale, la synthèse, le placement routage et l’implémentation, la
simulation temporelle et l’analyse de timing, la programmation sur les circuits
programmables de XILINX (CPLD et FPGA).

2. La Simulation à partir du logiciel XILINX :


2.1. La Simulation à partir du graphe d’état :

- Création d’un projet à partir du diagramme d’état (State diagram) :

La première chose à faire c’est d’ouvrir l’environnement Xilinx 10.1 pour créer
un nouveau projet à partir de file (new project).

Figure 4 : Création d’un projet

P a g e 13 | 29
L’écran de saisie de nouveau projet apparaîtra. On entre le nom du projet 
Next ;
Il faut choisir langage de programmation : VHDL

Figure 5 : Propriétés des composants


Après la création du projet, on sélectionne ‘NEW SOURCE’ et comme source
du projet on choisit ‘State Diagram’ et on nomme le diagramme.
Et on termine par Next  Finish.

Figure 6 : Le choix du type de source


P a g e 14 | 29
Après avoir terminé de spécifier les caractéristiques de notre source, une page
où on va dresser notre graphe d’état va être engendré par Xilinx.

En cliquant sur le bouton dans le menu principal pour choisir le


nombre d’états de notre graphes (4), ainsi que sa forme (géométrique) ensuite on
clique sur Next qui va nous permettre de choisir le type du reset (Synchrone).

Figure 7 : Choix du modèle du graphe d’état

Figure 8 : choix du type de reset

P a g e 15 | 29
En cliquant deux fois sur l’état, une fenêtre apparait où il faut nommer chaque
état et définir ses sorties éclore.

Figure 9 : Définition des sorties pour chaque état

Après la définition des états, il nous reste que de définir les conditions de
passage d’un état à l’autre, et pour le faire, un double clic sur la flèche reliant
deux états crée une fenêtre Edit condition cette étape est possible.

Figure 10 : définition des conditions de transition


P a g e 16 | 29
Après la définition de toutes les transitions, La machine à état doit ressembler à
ça :

Figure 11 : Graphe d’état du mini projet sous XILINX

- Générer le code VHDL :

Cliquer sur le bouton dans le menu en haut


Si vous avez construit la machine à état correctement, vous deviez voir ce
message

P a g e 17 | 29
Figure 12 : La compilation du graphe d’état
Cliquer fermer ‘Close’, et le l’assistant ouvrera le code VHDL crée.

Figure 13 : Le code VHDL du mini projet sous XILINX


P a g e 18 | 29
Pour la suite du programme (voir l’annexe)

- Simulation :

Maintenant que notre machine est terminée on veut la simuler, pour cela il suffit

de cliquer sur le bouton ‘State Bench’ dans le menu en top.


Vous obtenez alors :

Figure 14 : State Bench

P a g e 19 | 29
Pour rapidement réaliser une simulation cliquer sur ‘Automatic test Bench’
dans le menu top de la fenêtre ‘State Bench’. Vous obtenez alors après avoir
spécifié l’emplacement des fichiers VHDL et régression à exporter et les options
de simulation.

Figure 15 : La simulation à partir le graphe d’état

2.2- La Simulation à partir du programme VHDL :


Cette partie consiste à faire une simulation ainsi qu’une construction du schéma
bloc du système en utilisant le langage VHDL.

P a g e 20 | 29
- Construction du schéma bloc du système :
Alors commençant par exporter le programme VHDL comme suivant :

Figure 16 : Exportation du programme VHDL

Allons vers l’emplacement où nous avons enregistré notre projet nous


trouverons un fichier avec une extension ‘.vhd’ sélectionné et ajouté le au projet
c’est le fichier qui contient le programme VHDL qu’on va travaillez avec. Dans
la figure précédente c’est le fichier ‘GRAPHEPORTAIL-BEHAVIOR’, donc
notre programme est le suivant :

Figure 17 : fenêtre du GRAPHEPORTAIL.vhd

P a g e 21 | 29
Maintenant on peut avoir notre schéma bloc du système en double cliquant sur
‘ View RTL Schematic ‘
Le schéma bloc est le suivant :

Figure 18 : Schéma bloc du notre mini projet

- Construction du schéma interne du système :


Pour accéder au schéma interne du système il suffit de double cliquant sur le
schéma bloc et on va avoir la figure suivante :

Figure 19 : Schéma interne du notre mini projet

P a g e 22 | 29
- Simulation VHDL :
Pour simuler notre projet à partir du langage VHDL il faut cliquer sur le fichier
d’extension Dia  New source.
Ensuite une fenêtre apparaît dont il faut choisir ‘Test Bench Waveform‘ et
après on clique sur ‘Next’ et ainsi de suite.

Figure 20 : fenêtre pour simuler le mini projet à partir du programme VHDL

Puis une autre fenêtre sera engendrée qui permet de régler le CLOCK, dans cette
fenêtre il faut choisir ‘Single
clock’ et la période du CLOCK (1500ns) et après une clique sur ‘Finish’.

P a g e 23 | 29
Figure 21 : Réglage du clock

Après cette étape il faut cliquer sur source et choisir ‘behavioral simulation’

Figure 22 : Simulation du mini projet à partir du programme VHDL

P a g e 24 | 29
Maintenant on peut avoir notre simulation à partir du programme VHDL on
double cliquant sur ‘ Simulate Behavioral Model’.
Finalement, notre simulation est la suivante.

Figure 23 : Les chronogrammes de la simulation

P a g e 25 | 29
CONCLUSION

Pour réaliser notre projet qui a pour sujet ‘PORTAIL AUTOMATIQUE’ nous
sommes précédés par trois grandes parties :

- La première consiste à faire une étude théorique bien détaillé du projet pour
aboutir à un diagramme d’état qui répond aux spécificités du cahier des charges.

-La deuxième consiste à la compilation à partir du schéma où il faut créer le


diagramme d’état dans le logiciel, la simulation à partir du graphe d’état et
la simulation à partir du programme VHDL sous le logiciel XILINX.

Ce projet a été très intéressant et bénéfique. Il nous a été d’une grande utilité et
d’un grand apport. En effet, il nous a permet de s’adapter avec le logiciel
XILINX de plus qu’il nous a donné la capacité d’analyser un problème réel.

P a g e 26 | 29
ANNEXE
- Programme VHDL
:

-- C:\USERS\DELL\DESKTOP\MINI_PROJET_VHDL\GRAPHEPORTAIL.vhd
-- VHDL code created by Xilinx's StateCAD 10.1
-- Mon Nov 26 12:04:08 2018

-- This VHDL code (for use with Xilinx XST) was generated using:
-- one-hot state assignment with boolean code format.
-- Minimization is enabled, implied else is enabled,
-- and outputs are speed optimized.

LIBRARY ieee;
USE ieee.std_logic_1164.all;

ENTITY GRAPHEPORTAIL IS
PORT (CLK,PF,PO,RESET,T: IN std_logic;
F,O : OUT std_logic);
END;

ARCHITECTURE BEHAVIOR OF GRAPHEPORTAIL IS


-- State variables for machine sreg
SIGNAL E0, next_E0, E1, next_E1, E3, next_E3, E4, next_E4 : std_logic;
SIGNAL next_F,next_O : std_logic;
BEGIN
PROCESS (CLK, next_E0, next_E1, next_E3, next_E4, next_F, next_O)
BEGIN
IF CLK='1' AND CLK'event THEN
E0 <= next_E0;
E1 <= next_E1;
E3 <= next_E3;
E4 <= next_E4;
F <= next_F;
O <= next_O;
END IF;
END PROCESS;

PROCESS (E0,E1,E3,E4,PF,PO,RESET,T)
BEGIN

IF (( T='1' AND (E0='1')) OR ( PF='0' AND (E4='1')) OR ( RESET='0'


))
THEN next_E0<='1';
P a g e 27 | 29
ELSE next_E0<='0';

P a g e 28 | 29
END IF;

IF (( RESET='1' AND T='0' AND (E0='1')) OR ( RESET='1'


AND PO='1' AND (
E1='1'))) THEN next_E1<='1';
ELSE next_E1<='0';
END IF;

IF (( RESET='1' AND PO='0' AND (E1='1')) OR ( RESET='1' AND


T='1' AND (
E3='1'))) THEN next_E3<='1';
ELSE next_E3<='0';
END IF;

IF (( RESET='1' AND T='0' AND (E3='1')) OR ( RESET='1'


AND PF='1' AND (
E4='1'))) THEN next_E4<='1';
ELSE next_E4<='0';
END IF;

IF (( RESET='1' AND T='0' AND (E3='1')) OR ( RESET='1'


AND PF='1' AND (
E4='1'))) THEN next_F<='1';
ELSE next_F<='0';
END IF;

IF (( RESET='1' AND T='0' AND (E0='1')) OR ( RESET='1'


AND PO='1' AND (
E1='1'))) THEN next_O<='1';
ELSE next_O<='0';
END IF;
END PROCESS;
END BEHAVIOR;

P a g e 29 | 29

Vous aimerez peut-être aussi