Vous êtes sur la page 1sur 25

Filière 

:
Énergie Électrique et Industrie Numérique (EEIN)

Activité pratique FPGA

Préparé Par :

El Aissaoui Fatima Ezahrae

Encadré par:
M. JILBAB

Année Universitaire : 2022/2023

FATIMA EZAHRAE EL AISSAOUI


Sommaire
Sommaire...................................................................................................................................2

BUT :..........................................................................................................................................4

Système de codage :..................................................................................................................4

I. Réalisation du bloc diviseur :...........................................................................................4

1. Méthode de calcul :........................................................................................................4

2. Le programme en VHDL pour réaliser le bloc « diviseur » :....................................5

3. Les schémas du bloc « Diviseur » :...............................................................................5

4. Test Bench :....................................................................................................................6

4.1 Programme du test :...............................................................................................6

4.2 Résultats de la simulation :....................................................................................6

II. Réalisation du bloc registre 1:..........................................................................................7

1. Le programme en VHDL pour réaliser le bloc « Registre 1 » :.................................7

2. Les schémas du bloc « Registre 1 » :............................................................................8

3. Test Bench :....................................................................................................................8

3.1 Programme du test:................................................................................................8

3.2 Résultats de la simulation:.....................................................................................9

III. Réalisation du bloc « Registre 2 » :..............................................................................9

1. Le programme en VHDL pour réaliser le bloc « Registre 2 » :...............................10

2. Les schémas du bloc « Registre 2 » :..........................................................................10

3. Test Bench:...................................................................................................................11

3.1 Programme du test:..............................................................................................11

3.2 Résultats de la simulation:...................................................................................12

IV. Réalisation du bloc « Automate » :.............................................................................12

1. Le programme en VHDL pour réaliser le bloc « Automate » :...............................13

2. Les schémas du bloc « Automate » :...........................................................................14

3. Test Bench:...................................................................................................................14
3.1 Programme du test:..............................................................................................14

FATIMA EZAHRAE EL AISSAOUI


3.2 Résultats de la simulation:...................................................................................15

V. Réalisation du montage « Codeur » :.............................................................................16

1. Le programme global pour réaliser le montage « Codeur » :..................................16

2. Les schémas du bloc « Codeur » :...............................................................................17

3. Test Bench:...................................................................................................................18

3.1 Programme du test:..............................................................................................18

3.2 Résultats de la simulation :..................................................................................19

Conclusion...............................................................................................................................20
BUT :
Ce devoir a pour but de programmer en langage VHDL chaque bloc d’un système codeur afin
de donner le programme global du système complet.

Système de codage :
Un système de codage est organisé autour de deux registres à décalage, un diviseur de
fréquences et un automate de Moore selon l’architecture ci-contre. Le codeur dispose de deux
entrées « Horloge » et « Start » de 1bit pour le synchronisme et de deux bus d’entrée sortie :
« Entree » et « Sortie » de 8 bits chacune.

I. Réalisation du bloc diviseur :


Le diviseur, d’entrée « H » de 1bit et de sortie « Clk » de 1bit, permet de réaliser une division
de fréquence. Le signal à l’entrée « H » a une fréquence de 50MHz ; on veut récupérer à la
sortie « Clk » un signal carrée de rapport cyclique 1/2 et de fréquence égale à 1KHz.

1. Méthode de calcul :
 On note la fréquence du signal d’entrée : F E =50 MHZ
 On note la fréquence du signal de sortie : F S=1 KHZ

Tout d’abord on commence par calculer le rapport entre les deux :

F E 50 × 106
= =50 000
FS 10
3

Ensuite , on cherche la puissance de 2 tel que 2n ≥50 000

On trouve n=16
Donc il faut créer un compteur sur 16 bits pour obtenir la fréquence qui vaut 1 KHZ.

Remarque : Puisque 216 >50 000 on programme notre compteur de tel sorte que si la valeur du
compteur arrive à 250 000 on remet le compteur à 0 pour faire une demi période.

2. Le programme en VHDL pour réaliser le bloc « diviseur » :

3. Les schémas du bloc « Diviseur » :

3
4. Test Bench :
4.1 Programme du test :
4-2 Résultats de la simulation :

Interprétation :

On remarque d’après la figure précédente que la période correspondante au deuxième signal


(signal de sortie Clk) égale à 1000 μs .

1
D’où la fréquence correspondante au signal Clk égale à = 1 Khz.
1000 μs

II. Réalisation du bloc registre 1:


Le bloc « Registre1 » est un registre à décalage Parallèle-Série. L’entrée « E » est un bus de
8bits, et la sortie « S » est sur 1bit. À chaque front montant de l’entrée « Clk », si l’entrée «V»
est à 1 on fait l’acquisition de « E », mais si l’entrée « V » est à 0 on doit effectuer un
décalage à droite et le bit sortant est envoyé sur « S ».

1. Le programme en VHDL pour réaliser le bloc « Registre 1 » :


2. Les schémas du bloc « Registre 1 » :

3. Test Bench :
3.1 Programme du test:

FATIMA EZAHRAE EL AISSAOUI


3.2 Résultats de la simulation:
Interpretation:

D’après la figure ci-dessus on remarque que si V=1 l’entrée E est chargée dans le registre si
non on fait un décalage à gauche à chaque front montant :

On a initialisé E avec la valeur suivante :10101010

V=0 :

 Front montant 1 10101010 =>S :0


 Front montant 2 01010101 =>S :1
 Front montant 3 00101010 =>S :0
 Front montant 4 00010101 =>S :1
 Front montant 5 00001010 =>S :0
 Front montant 6 00000101 =>S :1
 Front montant 7 00000010 =>S :0
 Front montant 8 00000001 =>S :1

D’où ; les résultats obtenus correspondent bien à ce qui est demandé.

III. Réalisation du bloc « Registre 2 » :

Le bloc « Registre2 » est un registre à décalage Série-Parallèle. L’entrée « E » est sur 1bit et
la sortie « S » est un bus de 8bit. À chaque front descendant de l’entrée « Clk » on doit
effectuer un décalage à gauche.

1. Le programme en VHDL pour réaliser le bloc « Registre 2 » :


2. Les schémas du bloc « Registre 2 » :
3. Test Bench:
3.1 Programme du test:
3.2 Résultats de la simulation:

Interpretation:

D’après la figure ci-dessus on remarque que à chaque front descendant on aura un décalage à
gauche de l’entrée

D’où les résultats trouvés correspondent à ce qui est demandé.

IV. Réalisation du bloc « Automate » :

Le bloc « Automate » est un automate de Moore dont le graphe est le suivant.


1. Le programme en VHDL pour réaliser le bloc « Automate » :
2. Les schémas du bloc « Automate » :

3. Test Bench:
3.1 Programme du test:
3.2 Résultats de la simulation:

Interpretation:

D’après la figure ci-dessus on remarque que si :

 E = 0 : on obtient un signal carré dans la sortie parce que elle va partir de A(S=0) vers
B(S=1) puis il va revenir vers A(S=0).
 E = 1 : La sortie va être toujours égale à 1 car il va partir vers C(S=1) et cet état boucle
toujours dans 1.
V. Réalisation du montage « Codeur » :
1. Le programme global pour réaliser le montage « Codeur » :
1. Les schémas du bloc « Codeur » :
2. Test Bench:
2.1 Programme du test:
3.1 Résultats de la simulation :

Interprétation :

D’après les résultats obtenus lors de la simulation on déduit la fonction du codeur : il permet
de faire un décalage à gauche sur 8 bits de tel sorte qu’on va obtenir à la fin une sortie
10101010 quel que soit la valeur d’entrée.
Conclusion

Grâce à ce devoir, nous avons pu mettre en pratique nos connaissances théoriques en


programmation des automates et des registres en VHDL. Nous avons réalisé un
montage codeur composé de quatre blocs : un diviseur de fréquence, deux registres
et un automate. Nous souhaitons exprimer notre sincère gratitude à notre professeur,
M. JILBAB, pour ses efforts et pour nous avoir donné cette opportunité d'appliquer
nos connaissances de manière concrèt

Vous aimerez peut-être aussi