la déclaration " f<='0' When "0000"<= A <="1111" else '1' est elle correcte ou l'on devra utilisé impérativement
" f<='0' When ("A>=0000")and (A<="1111") else '1'
Voilà merci !
-----
08/06/2011, 20h39
#2
jiherve
Date d'inscription
juin 2006
Localisation
gironde
Âge
72
Messages
26 259
Re : vhdl
Bonsoir,
c'est la seconde forme à condition d'avoir déclaré la bonne librairie.
en fait la bonne écriture c'est:
f<='0' When ((unsigned(A)>= unsigned("0000")) and (unsigned(A)<= unsigned("1111"))) else '1';
avec les déclarations de deux librairies:
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
au bout du compte cela est cependant équivalent à : f <= '0'; car si A est un std_logic_vector(3 downto 0) alors il ne prend pas de valeurs "réelles" en dehors de cet intervalle.
Dans l'ecriture d'origine je suis bien incapable de dire ce que cela peut faire car si par chance A est bien un std_logic_vector(3 downto 0) alors la valeur '1' ne sera atteinte que si l'un des bit de A vaut autre chose que '0' ou '1' ce qui est bien sur possible en VHDL. Si A est de taille différente alors attention aux comparaisons entre objets de taille différentes ce que rien n'interdit ici, le résultat est toujours faux.
JR
Dernière modification par jiherve ; 08/06/2011 à 20h43.