Vous êtes sur la page 1sur 13

Département Génie Electrique

Filière : Génie Electrique et Contrôle des Systèmes Industriels

Module : Systèmes embarqués


Elément de module : Introduction aux systèmes embarqués

Programmation des circuits FPGA

Réalisé par : Demandé par :


• Mme. KACEMI Chaimae • M. RAFIK Mohamed

Année Universitaire : 2022-2023


Plan : Introduction

Définition du langage VHDL

Structure d’une description VHDL

APPLICATION 1 : Demi-additionneur

APPLICATION 2 : Additionneur complet


Introduction

Comment programmer un FPGA ?

Les FPGA utilisent un type de langage spécial, appelé HDL (Hardware Description Language).

2
Définition du langage VHDL

Définition :

VHSIC LANGUAGE

HARDWARE DESCRIPTION

VHSIC : Very High Speed Integrated Circuit

3
Définition du langage VHDL

Définition :

• VHDL est un langage de description matériel destiné à représenter le comportement ainsi que
l'architecture d’un système électronique numérique. Son nom complet est VHSIC Hardware Description
Langage.

• VHDL est utilisé pour :


- Décrire des circuit numérique
- Décrire des machines à états
- Préparer des signaux de test pour simuler cette écriture

4
Structure d’une description VHDL

L’entité ( Décrit un système vu extérieur)

Circuit
principal
L’architecture (Décrit le fonctionnement)

La configuration

La déclaration de paquetage

Package
Le corps de paquetage

5
Structure d’une description VHDL

Déclaration des bibliothèques.


L’IEEE (Institut of Electrical and Electronics Engineers) a normalisé les bibliothèques utilisées dans la
description VHDL et plus particulièrement la bibliothèque IEEE 1164.
Elles contiennent les définitions :
• des types de signaux électroniques
• des fonctions
• Les sous programmes permettant de réaliser des opérations arithmétiques et logiques

Library ieee;
Use IEEE.std_logic_1164.all;
Use IEEE.numeric_std.all;
Use IEEE.std_logic_unsigned.all;

 La directive Use permet de sélectionner les bibliothèques à utiliser.


6
Structure d’une description VHDL

Déclaration de l’entité et les entrées/sorties :


Elle permet de définir le NOM de la description VHDL ainsi que les entrées et sorties utilisées et leur type
L’instruction qui les définit c’est port

Syntaxe : NOM_DU_SIGNAL : sens type ;

Entity NOM_DE_L_ENTITE is
port ( Il est composé In
de: caractères,
pour unLe le premier
signal d’entrée
std_logic pour un signal.
Description des entrées/ sorties caractère doit être
Out :une lettre,
pour un sa longueur
Le signal en sortie pour un bus
std_logic_vector
); est quelconqueInout : pour composé
un signal deen plusieurs
entrée sortie
signaux
End NOM_DE_L_ENTITE Buffer : pour un signal de sortie mais utilisé
comme entrée dans le description

7
Structure d’une description VHDL

Déclaration de l’architecture :
• L’architecture décrit le fonctionnement souhaité pour un circuit ou une partie du circuit
• L’architecture établit à travers des instructions qui décrivent les relations entre les entrées et les sorties
• L’ordre dans lequel les instructions sont écrites n’a aucune importance

Les grands formalismes pour


décrire les architectures

Flot de données Structurel Comportemental

On écrit explicitement On décrit le circuit comme De manière très semblable à


les fonctions booléennes une série de boîtes noires un langage de programmation
que l'on veut voir interconnectées au moyen informatique, on précise le
implémentées de signaux fonctionnement voulu à l'aide
8 d'une suite d'instructions
Structure d’une description VHDL

Déclaration de l’architecture :

• L’architecture décrit le fonctionnement souhaité pour un circuit ou une partie du circuit


• L’architecture établit à travers des instructions qui décrivent les relations entre les entrées et les sorties
• L’ordre dans lequel les instructions sont écrites n’a aucune importance

Syntaxe :
architecture DESCRIPTION of NOM_DE_L_ENTITE is
begin
EQ1 <= ,,,, ;
EQ1 <= ,,,, ;
.
.
.
end DESCRIPTION ;
9
Application 1

Demi-additionneur :

library ieee;
use ieee.std_logic_1164.all;
entity demiadd is
port(a, b: in std_logic;
sum, c: out std_logic);
end demiadd;
architecture structure of demiadd is
begin
sum <= a xor b;
c <= a and b;
end structure;

10
Application 2

Additionneur complet :

library ieee;
use ieee.std_logic_1164.all;
entity adder is
port(a,b,cin : in std_logic;
cout,s : out std_logic);
end adder;
architecture structure of adder is
begin
s<= a xor b xor cin;
cout<= (a and b ) or (b and cin) or ( a and cin );
end structure;

11
MERCI POUR
VOTRE ATTENTION

Vous aimerez peut-être aussi