Je suis étudiant en GEII2 et j'ai un projet tutoré en VHDL a réaliser. J'aurais donc besoin d'un peu d'aide afin de pouvoir avancer sur ce sujet. Je remercie d'avance pour tous ceux qui m'apporterons leur soutien.
Mon sujet est le suivant.
Filtre extrema :
Description :
Un signal E entier signé complément à 2 en 8 bits présente une valeur à tous les fronts actifs de H à l'entrée du filtre. Le filtre détecte en temps réel le maxi et le mini sur une fenêtre indéterminée de valeurs de E.
Entrées :
- H : Horloge de cadencement interne 1 MHz
- E (7 :0) : Entrée du filtrage
- R : Réinitialise les maximum et minimum courants
- DV : Donnée valide ( actif à 1 sur front montant de H)
Sorties :
- SMIN(7 :0) : Sortie du filtrage mini (-128...127)
- SMAX(7 :0) : Sortie du filtre maxi (-128...127)
Ma première solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 entity EXTREMA is port( E : insigned std_logic; DV : in std_locic_vector(7 downto 0); CLK, RST : in std_logic SMIN : out std_logic_vector(7 downto 0); SMAX : out std_logic_vector(7 downto 0)); end EXTREMA; architecture FILTRE EXTREMA of EXTREMA is begin if(CLK'event and CLK = '1') then DV = '1' ; if(RST='1') then SMIN<='0'; SMAX<='0'; elseif(E>SMAX) then SMAX<=E; elseif(E<SMIN) SMIN<=E; end if; else DV = '0'; end if; end FILTRE EXTREMA;
Partager