0% ont trouvé ce document utile (0 vote)
205 vues9 pages

TP1 Vhdl-Fpga

Ce document présente une initiation à la programmation VHDL à travers l'utilisation du logiciel Quartus II. Il décrit les circuits logiques programmables, les étapes de programmation, ainsi que la structure d'une description VHDL, incluant l'entité et l'architecture. Des exercices pratiques sont également fournis pour appliquer les concepts appris, tels que la création d'un additionneur et d'un multiplexeur en VHDL.

Transféré par

mohammed.elhamlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
205 vues9 pages

TP1 Vhdl-Fpga

Ce document présente une initiation à la programmation VHDL à travers l'utilisation du logiciel Quartus II. Il décrit les circuits logiques programmables, les étapes de programmation, ainsi que la structure d'une description VHDL, incluant l'entité et l'architecture. Des exercices pratiques sont également fournis pour appliquer les concepts appris, tels que la création d'un additionneur et d'un multiplexeur en VHDL.

Transféré par

mohammed.elhamlili
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Ibn Tofail Année Universitaire

2024/2025
Ecole Nationale des Sciences

Appliquées, Kénitra

TP 1 : INITIATION A LA PROGRAMMATION VHDL


Première approche du logiciel simulateur de VHDL Quartus II

I- Synthèse : Circuits logiques programmables et outils de conception


Un circuit logique programmable se définit comme un composant électronique standard contenant des
modules de
Logique combinatoires et séquentiels, dont les interconnexions internes sont désignées par
programmation
(interconnexions entre différentes cellules logiques ; voir cours). Il peut être configuré et reconfiguré par
l’utilisateur, pour la réalisation de diverses fonctions logiques (numériques).
Plusieurs solutions sont possibles pour programmer un circuit logique programmable. Elles dépendent
essentiellement de l’outil de développement (outil de conception) utilisé. Les phases de programmation sont :
 Saisie de la description du circuit logique.
Fichier d’entrée
 Compilation pour la vérification de la description. (description)

 Simulation, synthèse (Netliste) et vérification. Compilateur


 Insertion du circuit à programmer et programmation.
Fichier de
configuration
La figure ci-contre résume les
différentes étapes de programmation Simulateur Programmateur

d’un tel circuit.


Le synthétiseur de l’outil de conception assistée par ordinateur (CAO) génère dans un premier temps une
Netlist qui décrit la connectivité de l’architecture. Puis l’outil de placement-routage place de façon optimale tous
les composants et effectue le routage entre les différentes cellules logiques.

VHDL (Very high-speed integrated circuits Hardware Description Language) est un langage de description de
matériel, destiné à représenter le comportement ainsi que l’architecture d’un système électronique logique ; en
particulier des circuits numériques programmables (ASIC, FPGA, CPLD,…etc.).
Actuellement, le marché des circuits programmables est toujours en pleine croissance. Deux fournisseurs
particuliers se disputent principalement ce marché : Xilinx et Altera (environ 80% du marché entre eux deux).
Par conséquence, les principaux fabricants de circuits logiques programmables proposent une version
gratuite mais limitée de leurs outils de simulation et de synthèse. Pour débuter en VHDL, nous citons quelques
environnements de programmation permettant la saisie d’un fichier VHDL.
Intel / Altera : Quartus II , Max+plus II , Modelsm,…etc.
Xilinx : ISE,...etc.

II- Structure générale d’une description VHDL


D’une manière générale, un système numérique est vu comme une "boîte noire". En VHDL, la "boîte noire"
est nommée entité (entity) et une entité doit toujours être associée avec au moins une description de son
contenu, de son implémentation : c’est l’architecture. Une description VHDL est donc composée de deux
parties indissociables :
 L’entité (entity) : elle décrit l’extérieur l’interface du composant et permet ainsi de définir les entrées/sorties.
Pour déclarer l’entité on donne un nom et on précise la liste des différents signaux d’entrés/sorties (ports
d’E/S).
 L’architecture (architecture) : décrit l’intérieur du composant. Elle contient les instructions VHDL permettant
de réaliser le fonctionnement attendu. Elle comporte une partie de déclaration et un corps de programme.
III- Présentation du logiciel
Le logiciel Quartus II permet entre autres, la description d’un projet (système numérique), sa compilation,
sa simulation logique et temporelle, son analyse temporelle et la programmation d’un circuit cible (CPLD ou FPGA).

Description graphique Simulation Choix du circuit


ou textuelle fonctionnelle cible, simulation
Programmation

La description du système numérique (logique) peut être faite à l’aide d’une des entrées suivantes :
 Editeur de texte : pour l’utilisation du langage VHDL ou VERILOG.
 Editeur graphique : permet d’utiliser les composants prédéfinis des bibliothèques fournies par le logiciel.
 Editeur de chronogrammes : avec lequel on représentera l’évolution temporelle et celle attendue des sortie

Editeur de texte Editeur graphique Editeur de chronogrammes

A chaque description est associé un symbole graphique du composant ainsi réalisé. L’éditeur graphique
permettra alors de relier éventuellement ces composants les uns aux autres. Chaque sous-ensemble puis le
système global est ensuite compilé, puis simulé par le simulateur logique, puis analysé et envoyé vers le circuit
cible via le programmateur.
III-1- Début d’un projet
Lorsque vous ouvrez Quartus II, vous devez créer un projet pour renseigner toute les données du micro-
contrôleur. Vous devez d’abord cliquer sur « New Project Wizard »

Cliquez sur « Next ».

Sur cette page vous devez renseigner le nom de votre projet, ainsi que le nom de l’entité qui va être dans votre projet.
Sur cette page, n’ajoutez aucun fichier, cliquez simplement sur « Next ».

Pour finaliser votre création de projet vous devez vérifier que vous avez bien saisi les bonnes
informations et ensuite cliquez sur « Finish ».

Pour écrire votre code, vous devez premièrement créer un fichier VHDL où vous pourrez rentrer le code.

Cliquez pour cela dans File -> New…


Nous voulons un fichier en VHDL car c’est le langage que nous utilisons, sélectionnez « VHDL File ».

Notre fichier est maintenant créé et nous pouvons ensuite passer à l’écriture de notre programme, le
programme sera écrit dans la zone rouge.
IV- Exercice d’application
Soit le code de description VHDL du circuit numérique suivant :
library ieee;
use ieee.std_logic_1164.all;

entity CIRCUIT is
port (A,B :in std_logic;
S1,S2,S3,S4,S5,S6,S7:out std_logic); S1
end CIRCUIT; S2
A S3
architecture DESCRIPTION of CIRCUIT is CIRCUIT
S4
begin B S5
S1 <= A and B; S6
S2 <= A or B; S7
S3 <= A xor B;
S4 <= not A;
S5 <= A nand B;
S6 <= A nor B;
S7 <= not(A xor B);
end DESCRIPTION;

 Faire les étapes mentionnées au paragraphe III-2 précédent : Saisir le code VHDL du circuit donné, sauvegarder,
compiler, corriger les erreurs si nécessaires, simuler et vérifier les résultats via waveform editor ?
 Tracer les chronogrammes des sorties pour le cas ci-dessous.
Noms : ……………………………………………………………… Note :…………………………

Remarque : N’oublier pas de rendre le rapport de TP !

Exercice 1 : Additionneur complet de 1 bit (affectation inconditionnelle)


Ecrire le code de description VHDL qui permet de réaliser un additionneur complet 1 bit, comme le montre la figure
suivante :
A B Cin S Cout
A B Cin

ADD

Cout S

1- Sauvegarder, compiler, corriger les erreurs si nécessaires, simuler et vérifier les résultats via Waveform editor ?
2- Visualiser les chronogrammes des entrées/sorties et remplir le tableau ?

Exercice 2 : Multiplexeur 2 vers 1 (affectation inconditionnelle)


Ecrire le code de description VHDL qui permet de réaliser le multiplexeur 2 vers 1 de la figure suivante :

MUX 2 : 1

E0 C S
S
0 E0 S = C E0 + C E1
E1
1 E1
C

1- Sauvegarder, compiler, corriger les erreurs si nécessaire, simuler et vérifier les résultats via Waveform editor ?
2- Visualiser les chronogrammes des entrées / sorties
3- Donner le code de description VHDL de ce circuit ?
..................................................................
..................................................................

Exercice 3 : Démultiplexeur 1 vers 4 (affectation conditionnelle)

1- Ecrire et compiler le code de description VHDL du circuit de


la figure en utilisant l’instruction When ... else … ?

Vous aimerez peut-être aussi