vhdl matrice stockage
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

vhdl matrice stockage



  1. #1
    invite938b5933

    vhdl matrice stockage


    ------

    Bonjour a tous,

    J'utilise quartus2 pour programmer en vhdl et max2 comme CPLD.
    J'ai une chaine d' acquisition ou je récupére un vecteur 16 bits et j'aimerais le mettre dans un tableau ou une matrice pour le stocker afin de réaliser une addition.

    Pour synthétiser, j'ai un une sortie qui me fournit un mot sur 16 bits a 100 Khz. Je dois prendre disons 50 mots à la suite et faire leur somme et je n'ai aucune idée de la manière de procéder.
    Je pensais mettre le bit i du mot dans la i éme ligne d'une matrice et dans la colonne corespondant au mot et ensuite faire la somme de la ligne mais je ne sais pas comment faire ca en vhdl.

    j'ai besoin de créer une matrice ( 16 lignes , 50 colonnes), de remplir une colonne avec un nouveau vecteur tous les 100Khz et quand j'arrive a 50, faire la somme pour chaque ligne et sortir un vecteur 16 bits.

    Merci de votre aide

    -----

  2. #2
    mp3dux

    Re : vhdl matrice stockage

    ben tu travailles en séquentiel avec deux indices colonnes et lignes pour gérer les tableau(array à 2 dimension). Tu incrémentes le numéro de colonne a chaque 100khz, à la fin quand ton indice atteint 50 tu fais la somme pour chaque ligne.

    le VHDL offre une souplesse incroyable personnellement ce que je trouve compliqué dans ce langage c'est qu'il y a tellement de possibilités qu'on ne sait laquelle est choisir.

  3. #3
    invite938b5933

    Re : vhdl matrice stockage

    en faite, je crois que je ne vais pas utiliser de matrice.
    Disons que je veule sélectionner 64 mots sur 16 bits et faire leur somme.
    Je crée deux vecteurs V et V1 std_logic_vector ( 0 to 23) un en signal pour le sortir et un en variable.

    A chaque front d'horloge et a l'aide d'un compteur je fais
    V=V1 + mot 16 bits
    V1 = V
    avec V1 que j'initialise a 0 ( V1<=(others =>'0')) au debut et lorsque mon compteur arrive a 64
    Ca me parait plus simple a programmer, nan?
    En faite je débute en VHDL, ca fait deux jours que je sais ce que c'est.

  4. #4
    jiherve

    Re : vhdl matrice stockage

    Bonsoir,
    Tu peux faire une somme à la volée si cela correspond à ton besoin.
    Comme je suis encore pas trop fatigué:
    Code:
    signal cpt integer range 0 to 63;
    signal acc,sum  integer range 0 to 64*(2**16);
    Process(clrn, clk)
      begin
        if clrn = '0' then
          cpt <= 0;
          sum <= 0;
          acc <= 0;
       elsif rising_edge(clk) then
         if cpt < 63 then
           cpt <= cpt+1;
           acc <= acc + to_integer(unsigned(Vin));
       else
         cpt <=  0;
         acc <= 0;
         sum <= acc + to_integer(unsigned(Vin));
       end if;
    end process;
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Matrice!! comment monter que une matrice est inversible!!!
    Par invite68a51119 dans le forum Mathématiques du supérieur
    Réponses: 12
    Dernier message: 28/07/2017, 20h36
  2. Réponses: 1
    Dernier message: 16/09/2009, 20h37
  3. Programmation d'une matrice en VHDL
    Par invitec4af4119 dans le forum Électronique
    Réponses: 1
    Dernier message: 01/08/2009, 16h29
  4. Aide VHDL matrice
    Par invite8206142f dans le forum Électronique
    Réponses: 3
    Dernier message: 03/04/2009, 03h36
  5. Point flottant en VHDL et vhdl-200x
    Par invite6eee6b27 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 02/09/2008, 20h47
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...