Bonsoir
Je cherche à créer la boîte suivante :
entrée :
1 2
| x : std_logic_vector (10 downto 0);
y : std_logic_vector (10 downto 0); |
sortie :
addra : std_logic_vector (14 downto 0);
Je fais un test sur x et y,
Si 0<=x<=799 et 0<=y<=599 (en décimal) alors je fais les opérations.
Sinon
adress <= (others => '0');
Pas de problème là-dessus;
Et je veux faire l'opération suivante (calcul sur les valeurs décimales de x et y) (en considérant les valeurs x,y non signées) :
addra reçoit la valeur (quotient_de(y_décimale/4))*200 + quotient_de (x_décimale/4)) reconvertie en vecteur 15 bits.
Étant donné que x,y sont sur 11 bits , la valeur maximale que pourrait prendre addra est de (quotient_de(2^11-1/4))*200 + quotient_de (2^11-1/4)) = 102861 qui se code sur 17 bits.
Mais étant donné les contraintes sur x,y cette valeur max voulue est de 149*800+199 = 29999 qui se code bien sur 15 bits.
Après plusieurs heures de recherches, je ne parviens pas à effectuer ces simples opérations (problèmes de conversion, de longueurs des vecteurs, valeurs non conformes à celles attendues...)
Pouvez-vous m'aider à résoudre ce problème svp ?
Merci,
Partager