bonjour,
alors voila je vous explique mon problème.
Je suis sous quartus 2 et programme un max2 de chez altera.
J'ai un une valeur qui est en fait l'écart entre deux données (donc soit positif soit négatif)
Le probleme que j'ai, c'est pour comparer cette valeur avec une autre quand elle est négative.variable ecart : std_logic_vector ( 0 to 24):=(others =>'0');
description algo :
Le code ci dessus ne marche pas, mais c'est ce que j'aimerais faire.if (ecart > 0) then
ecart_max_1 := ecart;
if (ecart_max_1 > ecart_max_final) then
ecart_max_final <= ecart_max_1;
else if (ecart_max_1 < ecart_max_final) then
ecart_max_final <= ecart_max_final;
end if;
end if;
else if (ecart < 0) then
ecart_min_1 := ecart;
if (ecart_min_1 < ecart_min_final) then
ecart_min_final <= ecart_min_1;
else if (ecart_min_1 > ecart_min_final) then
ecart_min_final <= ecart_min_final;
end if;
end if;
else if (ecart = 0) then
ecart_min_final <= ecart_min_final;
ecart_max_final <= ecart_max_final;
end if;
end if;
Si l'ecart est positif, alors je regarde si cette ecart est superieur a l'ecart precedent et si c'est le cas alors je change la valeur ecart max sinon je garde l'ancienne valeur ecart max.
Idem pour ecart min.
Seulement, en vhdl je ne sais pas trop comment gerer les std_logic_vector en unsigned ou signed.
Comment puis je faire?
Merci
-----