Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres



  1. #1
    lanix

    VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres


    ------

    Bonjour,

    mon problème est assez simple, j'ai un nombre en natural compris entre 0 et 31 (convertit d'un vector 5bits) et je voudrais extraire le chiffre des unités et celui des dizaines dans le but de l'afficher sur un afficheur 7segments. tout mon code est pret et pour la parti calcul, je pensais faire un banal modulo 10 et une division par 10. sauf que là ISE Design me sort 2 erreurs : la division et le modulo ne peuvent être effectués qu'avec des puissance de 2. je n'accorde pas d'importance au temp et je ne suis pas contre écrire ces fonctions, mais ça serait vachement fastidieux donc je voulais savoir s'il n'y avait pas une astuce pour mon cas.

    J'ai déjà résolu une partie du problème : si j'arrive à avoir les unités, je peux avoir les dizaines en faisant :
    dizaine := (nombre - unite) / 8
    cela tombe juste jusqu'à 34 qui est au dessus de mon maximum.

    merci d'avance de votre aide.

    -----

  2. Publicité
  3. #2
    remy01

    Re : VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres

    Salut,
    tant que le nombre est supérieur ou égal à 10, tu retranches 10 et incrémente un compteur qui va te donner les dizaines.
    Le dernier reste te donne les unités.
    A+ ....Rémy.

  4. #3
    lanix

    Re : VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres

    merci, c'est une très bonne idée je teste ça dans la soirée

  5. #4
    lanix

    Re : VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres

    j'essaye cette méthode mais pour une raison inconnue j'ai une erreur : Loop has iterated 64 times. Use "set -loop_iteration_limit XX" to iterate more. alors qu'il doit y avoir au maximum 3 itérations
    la condition est juste et lorsque j'initialise "nombre_temp" par une valeur et non par mon entrée, le programme compile sans erreur.
    donc je me dis que le composant est mal connecté sur mon bloc au dessus, mais pourtant voilà le code :

    bcd_conv1: entity work.bcd_converter(Behavioral) port map(nombre=>"10000", unite=>hexa0, dizaine=>hexa1);

    (avec hexa0 et hexa1 deux signaux qui vont dans un autre bloc pour l'affichage sur des 7segments)
    et le code du module :

    library IEEE;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.NUMERIC_STD.ALL;

    entity bcd_converter is
    port ( nombre : in std_logic_vector (4 downto 0);
    unite, dizaine : out std_logic_vector (3 downto 0));
    end bcd_converter;

    architecture Behavioral of bcd_converter is
    begin

    process(nombre)
    variable nombre_temp, dizaine_temp : natural;
    begin
    nombre_temp := to_integer(unsigned(nombre));
    dizaine_temp := 0;

    while nombre_temp > 9 loop
    nombre_temp := nombre_temp - 10;
    dizaine_temp := dizaine_temp + 1;
    end loop;

    unite <= std_logic_vector (to_unsigned(nombre_temp, 4));
    dizaine <= std_logic_vector (to_unsigned(dizaine_temp, 4));
    end process;

    end Behavioral;
    Dernière modification par lanix ; 17/04/2012 à 16h58.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    lanix

    Re : VHDL-Basys2 extraire l'unité et la dizaine d'un nombre à 2 chiffres

    c'est bon j'ai résolu le problème en changeant les variables temporaires de natural à integer

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/01/2011, 09h46
  2. Somme des chiffres d'un nombre
    Par alucard36 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 23/09/2010, 19h23
  3. Réponses: 7
    Dernier message: 25/05/2009, 19h36
  4. nombre à 26 chiffres...
    Par meriadec17 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 28/11/2006, 08h39
  5. extraire la racine carré d'un nombre premier à la main
    Par P-plum dans le forum Mathématiques du supérieur
    Réponses: 26
    Dernier message: 04/01/2005, 19h16
Découvrez nos comparatifs produits sur l'informatique et les technologies.