You are on page 1of 18

UNIVERSITE IBN ZOHR

Ecole Nationale des


Sciences Appliquées
Agadir 4 année GE4
ème

Travaux Pratiques
Systèmes Embarqués

Support Pédagogique

Pr. Rachid LATIF Responsable de TP

Année Universitaire 2020/2021


20

~1~
Lab0 : 7-segment BCD decoder
Décodeur BCD à 7segments
0.1. Objectifs TP0 :
L’objectif de manipulation est de créer une description VHDL pour un décodeur BCD à 7
segments, en utilisant les outils de Quartus II et ModelsSim pour compiler et simuler la
description, et aussi pour se familiariser avec ses outils et ses particularités.
0.2. Principe décodeur BCD en 7 segments
Le décodeur BCD en 7 segments convertit un signal de commande binaire de 4 bits en un signal
de 7 bits pouvant être affiché sur un affichage à 7 segments. Sept affichages sont constitués de 7
segments de LED pour afficher 0 à 9 et A à F. L’afficheur utilisé à anodes communes (e.g l’état actif
dans le niveau bas).

Le code VHDL de décodeur BCD à 7 segments peut être mis en œuvre de 2 façons. En
simplifiant l'expression booléenne pour implémenter la conception structurelle et la conception
comportementale.
Table de vérité du décodeur BCD à 7 segments

Edition du fichier VHDL :


Après la création d’un nouveau projet dans Quartus II sous le nom atelierTP0, on passe à
l’édition le code de description VHDL. Pour ce faire, cliquez sur File→New, sélectionner
VHDL File. Une fenêtre vierge apparaît puis en copiant le code VHDL de décodeur,
enregistrer votre fichier sous le nom LabTP0.vhd.

~2~
Library IEEE;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_arith.allALL;
use ieee.std_logic_unsigned.all;
entity LabTP0 is
port ( dec : in std_logic_vector (3 downto 0);
seg : out std_logic_vector (6 downto 0));
end LabTP0;
Architecture Adder of LabTP0 is
Begin
seg <= "1111110" when dec = "0000" else
"0110000" when dec = "0001" else
"1101101" when dec = "0010" else
"1111001" when dec = "0011" else
"0110011" when dec = "0100" else
"1011011" when dec = "0101" else
"1011111" when dec = "0110" else
"1110000" when dec = "0111" else
"1111111" when dec = "1000" else
"1111011" when dec = "1001" else
"-------";
end adder;

~3~
0.3. Compilation
Avant de simuler cette description, il est nécessaire de vérifier qu’il ne comporte pas d’erreurs
de conception c’est l’étape de compilation.

Aller dans le menu Processing et appuyer sur Star compilation. Lancer le compilateur. Le
compilateur analyse, réalise la synthèse et le placement routage du composant sur le circuit
cible. L’ensemble des rapports de compilation et d’analyse des performances sont disponibles à
partir de cette fenêtre ci-dessous.

Outils de compilation, synthèse, placement routage et programmation

Lorsque la compilation est terminée sans signalée des erreurs, on peut vérifier quelque
informations à partir Flow Summary (rapport de compilation).

Rapport de compilation

~4~
0.4. Simulation
Cette étape consiste à vérifier le comportement du composant créé. Attention, cette étape
nécessite d’avoir compilé au préalablement les descriptions de circuit. Le simulateur permet de
vérifier les comportements temporels et fonctionnels de descriptions flot de données,

structurelles et comportementales. Pour ce faire, appuyez sur le bouton , qui lancera le


programme ModelSim avec tous les paramètres préchargés. Tout comme pour Quartus II,
l’espace de travail est découpé en différentes zones.

Selon que l’on désire visualiser les signaux du circuit RTL, on sélectionne l’entité labtp0 :

i. Pour placer les signaux sur le chronogramme : Dans la fenêtre Objects, sélectionner avec
la souris les Entrées/Sorties désirées, puis avec un clique-droit choisir

Add → To Wave → SelectedSignals

La fenêtre du chronogramme apparaît :

~5~
ii. Pour regrouper certains signaux ensemble, on sélectionne les signaux désirés, on clique
sur le bouton droit de la souris puis on choisit Group : On nomme l’entrée par Bin, et la
sortie par Segment :

iii. Pour accéder aux propriétés d’un signal, sélectionner le puis cliquer sur le bouton droit
puis choisir signal properties. Par exemple on peut changer la couleur de représentation
du signal.
iv. Définir les entrées Bin de type clock

v. Lancer la simulation avec le bouton Run après avoir précisé le temps de simulation
200ns. Les signaux apparaîtront sur le chronogramme.

Résultat de simulation

~6~
Lab1 : Logic control of the LEDs

Commande logique des LEDs

1.1 Objectif de TP1


L’objectif de ce TP est de prendre en main les outils de conception et de découvrir des
différentes sortes des technologies FPGA en s’appuyant sur des manipulations basées sur le
langage de description VHDL. Cela nous permettra de découvrir le logiciel Qua Quartus II d’Intel-
Altera pour élaborer la description VHDL d’un d’unee application simple de commande de LEDs et
aussi pour simuler le résultat via l’outil de simulation ModelSim (Partie I). La carte FPGA
proposée dans ce TP pour l’implémentation embarquée est FPGA-DE0FPG DE0 d’Intel-Altera
d’Intel de type
Cyclone III (Partie II). Cette partie est supervisée par l’enseignement chercheur responsable de
TP.

1.2
.2 Principe de fonctionnement de ce TP
Le principe de fonctionnement de ce TP est simple. Chaque mot binaire proposé par trois
tro
switches représente une commande d’affichage des LEDss de la façon suivante :

SW SW SW LED LED LED LED LED LED LED LED


(2) (1) (0) (7) (6) (5) (4) (3) (2) (1) (0)

0 0 0 0 0 0 0 0 0 0 1

0 0 1 0 0 0 0 0 0 1 0

0 1 0 0 0 0 0 0 1 0 0

0 1 1 0 0 0 0 1 0 0 0

1 0 0 0 0 0 1 0 0 0 0

1 0 1 0 0 1 0 0 0 0 0

1 1 0 0 1 0 0 0 0 0 0

1 1 1 1 0 0 0 0 0 0 0

SW représente l’entrée de système (Switch) et LED est la sortie de système.

1.3 Manipulation 1
1. Donner le code de la description VHDL de ce système en respectant les noms des ports
indiqués par la carte utilisée (voir fichier pdf du manuel de la carte FPGA-DE0
FPGA DE0 Cyclone III).

~7~
2. Créer un nouveau projet sous le nom d’entité en ajoutant le code de la description VHDL.
3. Compiler le code de la description VHDL en interprétant les résultats de la compilation.
4. Générer Netlist des descriptions structurées de système à savoir RTL Viewer, Post-Mapping
et Post-Fitting, puis trouver la différence entre ces descriptions.
5. Donner un rapport sur cette implémentation en indiquant les différents éléments logiques
utilisés.

1.4 Manipulation 2
Cette manipulation est basée sur l’outil de simulation ModelSim.
1. Crée un nouveau projet ModelSim est compiler la description de l’architecture proposée dans
la manipulation 1.
2. Débuter une simulation ModelSim et analyser le rapport de la simulation.
3. Vérifier le code VHDL en introduisant des valeurs aléatoires aux entrées, puis des signaux.
4. Donner un rapport détaillé sur cette simulation.

1.5 Manipulation 3
Cette manipulation est réalisée dans la salle du TP sous la présence du professeur responsable de
TP.
1. En utilisant les fichiers des assignations, compléter la phase de l’implémentation à base des
outils de développement.
2. Implémenter l’architecture proposée dans la carte FPGA-DE0 d’Intel-Altera (la présence du
professeur responsable de TP est Obligatoire).
3. Donner un rapport détaille de ce TP.

~8~
Lab2 : 4-bit
bit Adder with Results Display
Additionneur 4 bits avec
affichage des résultats

2.1 Objectif de TP2


L’objectif de ce TP est de proposer une architecture d’un additionneur 4 bits avec affichage des
résultats dans les LEDs et des afficheurs 7 segments via Quartus II d’Intel
d’Intel-Altera et de valider
cette architecture en utilisant l’outil de simulation ModelSim (Partie I). Le but de la partie II de
ce TP est l’implémentation embarquée de l’architecture proposée d’un additionneur 4, 4 bits avec
affichage des résultats dans les LEDs et des afficheurs
affiche 7 segments, via la carte FPGA-DE0. Cette
partie est supervisée par l’enseignement chercheur responsable de TP.

2.2
.2 Principe de fonctionnement de ce TP
Le principe de fonctionnement de ce TP est basé sur un additionneur 4 bits. Les entrées de ce
système sont 8 switches (2 X 4 bits) est comme sortie les LEDss et 4 afficheurs 7 segments. Le
mot à afficher est le suivant « S = XX ». XX représente la somme en décimal. Le reset permet la
remise
emise à zéro des processus de cet additionneur.

2.3 Manipulation 1
1. Donner le code de la description VHDL de ce système en respectant les noms des ports
indiqués par la carte utilisée (voir fichier pdf du manuel de la carte FPGA-DE0
FPGA DE0 Cyclone III).
2. Créer un nouveau projet sous le nom d’entité en ajoutant le code de la description VHDL.
3. Compiler le code de la description VHDL en interprétant les résultats de la compilation.
4. Générer Netlist des descriptions structurées de système à savoir RTL Viewer,
Viewer Post-Mapping
et Post-Fitting,, puis trouver la différence entre ces descriptions.
5. Donner un rapport sur cette implémentation en indiquant les différents éléments logiques
utilisés.

2.4 Manipulation 2
Cette manipulation est basée sur l’outil de simulation ModelSim.
1. Crée un nouveau projet ModelSim est compiler la description de l’architecture proposée dans
la manipulation 1.
2. Débuter une simulation ModelSim et analyser le rapport de la simulation.
3. Vérifier le code VHDL en introduisant des valeurs aléatoires aux entrées, puis des signaux.
4. Donner un rapport détaillé sur cette simulation.

2.5 Manipulation 3
Cette manipulation est réalisée dans la salle du TP sous la présence du professeur responsable de
TP.
1. En utilisant les fichiers des assigna
assignations,
tions, compléter la phase de l’implémentation à base des
outils de développement.

~9~
2. Implémenter l’architecture proposée dans la carte FPGA-DE0 d’Intel-Altera (la présence du
professeur responsable de TP est Obligatoire).
3. Donner un rapport détaille de ce TP.

~ 10 ~
Lab3 : Modulo N Counter

Compteur modulo N

3.1 Objectif de TP3


L’objectif de ce TP est de proposer une architecture d’un compteur modulo N avec affichage des
résultats dans les LEDs et des afficheurs 7 segments via Quartus II d’Intel
d’Intel-Altera et de valider
cette architecture en utilisant l’outil de simulation ModelSim (Partie I). Le but de la partie II de
ce TP est l’implémentation embarquée de l’architecture proposée d’un compteur modulo N, avec
affichage des résultatss dans les LEDs et des afficheurs 7 segments, via la carte FPGA-DE0.
FPGA Cette
partie est supervisée par l’enseignement chercheur responsable de TP.

.2 Principe de fonctionnement de ce TP
3.2
Le principe de fonctionnement de ce TP est basé sur un compteur modulo N. N Le compteur a
comme limite de compter de 0 à 30 selon le choix de l’utilisateur. Si le choix dépasse cette
limite, l’afficheur affiche une erreur sinon il affiche le résultat de comptage de la façon
suivante « C = XX ». XX représente le résultat en décimal. En cas d’erreur XX = Er. Le reset
permet la remise à zéro du compteur.

3.3 Manipulation 1
1. Donner le code de la description VHDL de ce système en respectant les noms des ports
indiqués par la carte utilisée (voir fichier pdf du manuel de la carte FPGA-DE0
DE0 Cyclone III).
2. Créer un nouveau projet sous le nom d’entité en ajoutant le code de la description VHDL.
3. Compiler le code de la description VHDL en interprétant les résultats de la compilation.
4. Générer Netlist des descriptions struct
structurées de système à savoir RTL Viewer,
Viewer Post-Mapping
et Post-Fitting,, puis trouver la différence entre ces descriptions.
5. Donner un rapport sur cette implémentation en indiquant les différents éléments logiques
utilisés.

3.4 Manipulation 2
Cette manipulation est basée sur l’outil de simulation ModelSim.
1. Crée un nouveau projet ModelSim est compiler la description de l’architecture proposée dans
la manipulation 1.
2. Débuter une simulation ModelSim et analyser le rapport de la simulation.
3. Vérifier
fier le code VHDL en introduisant des valeurs aléatoires aux entrées, puis des signaux.
4. Donner un rapport détaillé sur cette simulation.

3.5 Manipulation 3
Cette manipulation est réalisée dans la salle du TP sous la présence du professeur responsable de
TP.

~ 11 ~
1. En utilisant les fichiers des assignations, compléter la phase de l’implémentation à base des
outils de développement.
2. Implémenter l’architecture proposée dans la carte FPGA-DE0 d’Intel-Altera (la présence du
professeur responsable de TP est Obligatoire).
3. Donner un rapport détaille de ce TP.

~ 12 ~
Lab4 : Advanced R
Red Light System
ystem
Système de feux rouge avancé

4.1 Objectif de TP4


L’objectif de ce TP est de proposer une architecture d’un système de feux rouge avancé avec
affichage des résultats dans les LEDs via Quartus II d’Intel-Altera
Altera et de valider cette architecture
en utilisant l’outil de simulation ModelSim (Partie I). Le but de la partie II de ce TP est
l’implémentation embarquée de l’architecture proposée d’un compteur modulo N, avec affichage
des résultats dans les LEDs et des afficheurs 7 segments, via la carte FPGA-DE0.
FPGA Cette partie est
supervisée par l’enseignement chercheur responsable de TP.

4.2
.2 Principe de fonctionnement de ce TP
Le principe de fonctionnement de ce TP est basé sur une description structurelle des différentes
composantes d’une architecture globale qui représente ce système. L
Lee système de feux rouge
proposé est basé sur 3 modes de fonctionnement : Mode automatique, mode manuel et le mode
standby. Ce tableau présente le principe de choix des
d différents modes :

ON_SW Auto_SW Man_SW Stdby_SW LED_ON LED_Auto LED_Man LED_Stdby

0 X X X 0 0 0 0

1 1 0 0 1 1 0 0

1 0 1 0 1 0 1 0

1 0 0 0 1 0 0 1

1 1 1 0 0 0 0 0

1 1 0 1 0 0 0 0

1 0 1 1 0 0 0 0

Si le mode automatique est activé, le fonctionnement est le suivant :

~ 13 ~
Etape 1 : LED Green_1 = 1 ; LED yellow_1 = 0 ; LED red_1 = 0 ; LED Green_2 = 0 ; LED
yellow_2 = 0 ; LED red_2 = 1 => Pendant 30 seconds.

Etape 2 : LED Green_1 = 0 ; LED yellow_1 = 1 ; LED red_1 = 0 ; LED Green_2 = 0 ; LED
yellow_2 = 0 ; LED red_2 = 1 => Pendant 3 seconds.

Etape 3 : LED Green_1 = 0 ; LED yellow_1 = 0 ; LED red_1 = 1 ; LED Green_2 = 0 ;


LED yellow_2 = 0 ; LED red_2 = 1 => Pendant 3 seconds.

Etape 4 : LED Green_1 = 0 ; LED yellow_1 = 0 ; LED red_1 = 1 ; LED Green_2 = 1 ;


LED yellow_2 = 0 ; LED red_2 = 0 => Pendant 30 seconds.

Etape 5 : LED Green_1 = 0 ; LED yellow_1 = 0 ; LED red_1 = 1 ; LED Green_2 = 0 ;


LED yellow_2 = 1 ; LED red_2 = 0 => Pendant 3 seconds.

Etape 6 : LED Green_1 = 0 ; LED yellow_1 = 0 ; LED red_1 = 1 ; LED Green_2 = 0 ;


LED yellow_2 = 0 ; LED red_2 = 1 => Pendant 3 seconds.

Returner à l’Etape 1.

LED_X_1 représente les feux de position 1 et LED_X_2 représente les feux de position 2.

Si le mode manuel est activé, les feux s’allument manuellement selon les switches de
commande équivalents suivants : Manual_Pass_X ; Manual_Stop_X ; Manual_fStop_X. X
représente la position (1 ou 2). Si Manual_Pass_X est actif le feu LED_Green s’allume. Si
Manual_fStop_X est actif le feu LED_red s’allume. Si Manual_Stop_X est actif le feu
LED_yellow s’allume pendant 3 seconds puis le feux LED_red s’allume.

Si le mode Standby est activé, les deux feux LED_yellow clignotent. Ils s’allument pendant
1 seconds est ils s’éteignent pendant 1 seconds.

4.3 Manipulation 1
1. Donner les codes VHDL des composantes proposées de ce système en indiquant le schéma
général de ce dernier.
2. Donner le code de la description VHDL de ce système en respectant les noms des ports
indiqués par la carte utilisée (voir fichier pdf du manuel de la carte FPGA-DE0 Cyclone III).
3. Créer un nouveau projet sous le nom d’entité en ajoutant le code de la description VHDL.
4. Compiler le code de la description VHDL en interprétant les résultats de la compilation.
5. Générer Netlist des descriptions structurées de système à savoir RTL Viewer, Post-Mapping
et Post-Fitting, puis trouver la différence entre ces descriptions.
6. Donner un rapport sur cette implémentation en indiquant les différents éléments logiques
utilisés.

~ 14 ~
4.4 Manipulation 2
Cette manipulation est basée sur l’outil de simulation ModelSim.
1. Crée un nouveau projet ModelSim est compiler la description de l’architecture proposée dans
la manipulation 1.
2. Débuter une simulation ModelSim et analyser le rapport de la simulation.
3. Vérifier le code VHDL en introduisant des valeurs aléatoires aux entrées, puis des signaux.
4. Donner un rapport détaillé sur cette simulation.

4.5 Manipulation 3
Cette manipulation est réalisée dans la salle du TP sous la présence du professeur responsable de
TP.
1. Selon la disposition des leds et des switches dans la carte, donner la liste des leds et des
switches utilisée dans ce TP.
2. En utilisant les fichiers des assignations, compléter la phase de l’implémentation à base des
outils de développement.
3. Implémenter l’architecture proposée dans la carte FPGA-DE0 d’Intel-Altera (la présence du
professeur responsable de TP est Obligatoire).
4. Donner un rapport détaille complet de ce TP.

~ 15 ~
Cartes FPGA d’Intel-Altera utilisées dans les TPs
DE0, DE1 et DE2-115
Implémentation embarquée des algorithmes

Carte DE0 d’Intel-Altera


La carte FGPA-DE0 est conçue dans une taille compacte avec tous les outils essentiels pour les
utilisateurs novices le but d’acquérir des connaissances dans les domaines de la logique
numérique et les FPGA. Il est équipé du dispositif FPGA Altera Cyclone III 3C16, qui offre 15
408 LE. La carte fournit 346 broches d'E / S utilisateur et elle est dotée d'un ensemble complet
de fonctionnalités qui la rendent utilisable pour des cours universitaires et collégiaux avancés,
ainsi que pour le développement de systèmes numériques sophistiqués. La carte FPGA-DE0
associe le FPGA Cyclone III à faible consommation, à faible coût et de haute performance pour
contrôler les différentes fonctions de la carte DE0.

Pour découvrir cette carte et les différentes fonctionnalités proposées prière de voire le fichier
PDF intitulé DE0 manual.

~ 16 ~
Carte DE1 d’Intel-Altera
La carte DE1 possède de nombreuses fonctionnalités qui permettent à l'utilisateur d’implémenter
une large gamme de circuits conçus, allant de circuits simples à diverses architectures plus
compliquées.

La carte DE1 possède un dispositif FPGA Altera Cyclone II de la famille 2C20 avec un
dispositif de configuration série Altera-EPCS4. Pour la programmation de la carte DE1, le
protocole USB Blaster intégré à la carte est proposé avec deux modes de programmation ; le
mode JTAG (Joint Test Action Group) et le mode Active Serial. La carte DE1 offre une SRAM
de 512 Kbits, une SDAM de 8 Mbits, une mémoire flash de 4 Mbits et une prise de carte SD. 14
interrupteurs sont proposés, 4 sont à base des boutons poussoirs et le reste sont des interrupteurs
à bascule. 10 voyants LED rouges et 8 voyants LED vertes sont intégrés dans la carte DE1. Cette
dernière offre 3 oscillateurs de 50 Mhz, 27 Mhz et 24 Mhz pour les sources des horloges. La
carte DE1 offre d’autres outils comme la sortie VGA et le connecteur RS232…etc.

Pour découvrir cette carte et les différentes fonctionnalités proposées prière de voire le
fichier PDF intitulé DE1 manual.

~ 17 ~
Carte DE2 d’Intel-Altera
La série DE2 a toujours été à l'avant-garde des conseils de développement pédagogique en se
distinguant par une large gamme d'interfaces pour répondre aux divers besoins d'applications. La
carte DE2-115 équipé du dispositif Cyclone IV E. Elle offre un équilibre optimal entre faible
coût et faible consommation pour répondre à l'augmentation des besoins polyvalents à faible coût
en offrant de la logique, de la mémoire et des capacités DSP. L'appareil Cyclone EP4CE115
équipé sur le DE2-115 comprend 114 480 éléments logiques (LE), le plus grand de la série
Cyclone IV E, jusqu'à 3,9 Mbits de RAM et 266 multiplicateurs. De plus, il offre une
combinaison sans précédent de faible coût et de fonctionnalité, ainsi qu'une puissance inférieure
à celle des appareils Cyclone de la génération précédente. Pour le développement de prototypes
ASIC à grande échelle, une connexion peut être établie avec deux cartes FPGA ou plus au
moyen d'un câble HSMC via le connecteur HSMC.

Pour découvrir cette carte et les différentes fonctionnalités proposées prière de voire le fichier
PDF intitulé DE2 manual.

~ 18 ~

You might also like