Académique Documents
Professionnel Documents
Culture Documents
« Logique programmable»
A. ZAKRITI
UNIVERSITE ABD EL MALEK ESSAADI
ÉCOLE NATIONALE DES SCIENCES APPLIQUÉES
Tétouan
A. ZAKRITI 2
Note sur VHDL
A. ZAKRITI 3
UNIVERSITE ABD EL MALEK ESSAADI
ÉCOLE NATIONALE DES SCIENCES APPLIQUÉES
Tétouan
A. ZAKRITI 4
Sous-programmes
A. ZAKRITI 5
Sous-programmes: Fonctions
Introduction:
A. ZAKRITI 6
Sous-programmes: Fonctions
Syntaxe de déclaration:
function NOM_FONCTION (PARAMETRES : « type ») return
« type du paramètre retourné » is
déclaration des variables si nécessaire ;
Begin
INSTRUCTIONS_SEQUENTIELLES ;
return NOM_OU_VALEUR_DU_PARAMETRE_DE_RETOUR ;
end ;
A. ZAKRITI 8
Sous-programmes: Fonctions
Exemple:
Dans le circuit suivant, on utilise la fonction logique NAND à
trois Entrées, 4 fois. On va le décrire en créant une
description VHDL comportant une fonction nommée NONET.
A. ZAKRITI 9
Sous-programmes: Fonctions
l’entité (Ports d’E/S) associé à ce circuit:
Entity montageX is
port (A1, A2, A3, B1, B2, B3, C1, C2, C3 : IN bit ;
S1, S2, S3 : INOUT bit ;
S4 : OUT bit) ;
end entity ;
A. ZAKRITI 10
Sous-programmes: Fonctions
Description de l’architecture
Architecture Behavioral of montageX is
A. ZAKRITI 14
Sous-programmes: Procédures
Syntaxe:
procedure NOM_PROCEDURE (PARAMETRES : « direction »
« type ») is
déclaration des variables si nécessaire
begin
INSTRUCTIONS_SEQUENTIELLES ;
end ;
A. ZAKRITI 15
Sous-programmes: Procédures
library IEEE;
use IEEE.STD_LOGIC_ARITH.ALL
- librairie nécessaire pour le « UNSIGNED »
- Utilisée avec les opérateurs arithmétiques
entity Proc is
Port (x,y : in unsigned (7 downto 0);
z : out unsigned(7 downto 0);
t : out unsigned(7 downto 0));
end Proc;
A. ZAKRITI 16
Sous-programmes: Procédures
architecture Behavioral of Proc is
procedure MinMax(signal a,b : in unsigned (7 downto 0);
signal min : out unsigned(7 downto 0);
signal max : out unsigned(7 downto 0)) is
end Behavioral;
A. ZAKRITI 18
Sous-programmes
Le cas de l’utilisation de la fonction, on peut
retourner qu’un seul paramètre: on va retourner
que la valeur minimale par exemple
A. ZAKRITI 19
Sous-programmes
A. ZAKRITI 20
Sous-programmes
begin
if (a < b) then
return a ;
Else
return b;
end if;
end function minimal;
A. ZAKRITI 21
Sous-programmes
Résumé:
A. ZAKRITI 22
les paquetages ou package
BUT:
Comment ?
A. ZAKRITI 23
les paquetages ou package
A. ZAKRITI 24
les paquetages ou package
Entité/Architecture
Fenêtre de
création de
fichier source
sur « XILinx »
Package/Package body
A. ZAKRITI 25
les paquetages ou package
Package pack_proj is
constant tps_propa : time; -- déclaration de la constante obligatoire
end pack_proj;
end pack_bod;
A. ZAKRITI 26
les paquetages ou package
use work.pack_proj.all
Exemple:
use work.pack_proj.all;
Déclaration de la bibliothèque
« work » et le pack. utilisé
entity temps is
end temps;
A. ZAKRITI 28
les paquetages ou package
A. ZAKRITI 29
les paquetages ou package
Récapitulation:
A. ZAKRITI 30
les paquetages ou package
Autre objectif:
- Pour rendre accessibles les fonctions ou
procédures à partir de plusieurs architectures, il
est nécessaire de les déclarer au sein de
packages.
A. ZAKRITI 31
les paquetages ou package
Package pack_NONET is
function NONET (A, B, C : bit) return bit;
end pack_NONET;
A. ZAKRITI 32
les paquetages ou package
Déclaration de la
Use work.pack_NONET.all ;
bibliothèque « work »
et le pack. utilisé Entity montage_X is
port (A1, A2, A3, B1, B2, B3, C1, C2,
C3 : IN bit ;
S1, S2, S3 : INOUT bit ; S4 : OUT bit) ;
end montage_X;
architecture Behavioral of montage_X
is
Begin
S1 <= NONET (A1, A2, A3);
S2 <= NONET (B1, B2, B3);
S3 <= NONET (C1, C2, C3);
S4 <= NONET (S1, S2, S3);
end Behavioral;
A. ZAKRITI 33
La fonction NONET pourra être utilisée dans un autre code
à condition qu’il soit dans le même projet:
Use work.pack_NONET.all ;
Entity FONC1 is
port (A1, A2, A3: IN bit ;
S : OUT bit) ;
end montage_X;