comment utiliser des données stocker dans un package en vhdl?
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

comment utiliser des données stocker dans un package en vhdl?



  1. #1
    invitec2f0ffc9

    comment utiliser des données stocker dans un package en vhdl?


    ------

    salam tout le monde .
    je veux stocker quelques matrice dans un package afin de pouvoir les utiliser dans plusieurs procédure. mais quand je déclare une variable ou un signal dans une procédure et quand je l'affecte la valeur d'une matrice déclaré comme constant dans le package , (x:=c ou x et une variable et c est une constant déclaré dans le package.
    cette variable ou signale ne prend pas cette valeur
    quelqu'un saurait il comment dois je faire ?

    merci d'avance et bonne soirée!

    -----

  2. #2
    jiherve

    Re : comment utiliser des données stocker dans un package en vhdl?

    bonsoir,
    publie donc ton code, ma BdC est performante mais pas à ce point.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    invitec2f0ffc9

    Re : comment utiliser des données stocker dans un package en vhdl?

    salam
    puisque le code est vraiment trop long je vais pas tout publier, alors voici la parti qui contient l'appel de la matrice stocké dans le package
    library ieee;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    use work.pakk_f6.all;
    use work.pakk_f.all;
    use work.pack_term.all;
    use work.pack_dispo.all;
    use work.pack_conc.all;
    use work.pakk_f4.all;
    use work.pack_verif.all;
    use work.pack_dist.all;
    package pack_ap is
    --constant n:integer:=28;
    --type matrice is array(0 to n-1,0 to n-1)of integer;
    type vec is array(0 to 27)of integer;

    type matrice1 is array(0 to 41)of std_logic_vector(0 to 49);
    procedure ap(signal dp,ar: in integer range 0 to 100;signal c:in matrice;signal park:in matricee ; signal z:in matrice1;signal l :inout matrice ;signal p:inout matricee ; variable chut integer_vector; variable k3: out integer);
    end pack_ap;
    package body pack_ap is
    procedure ap(signal dp,ar: in integer range 0 to 100;signal c:in matrice ;signal park:in matricee; signal z:in matrice1; signal l :inout matrice ;signal p:inout matricee ; variable chut integer_vector ; variable k3: out integer) is

    variable vinit,vter,vk3,vchh,ii:integer ;
    variable vv,kk,k1,k2:integer;
    variable vect:std_logic_vector (0 to 49);
    variable init,ter,chh:integer range 0 to 100 ;
    variable nnn : integer range 0 to 100 ;
    variable x : matrice;
    variable tabb,tab2,vch: integer_vector(0 to 27);
    constant nan:integer:=0;
    constant inf:integer:=integer'high;
    begin
    x:=c;

    if ar/=9 and ar/=6 then
    x(ar,dp):= 0;
    floyd(x,l,p);
    else
    floyd(x,l,p);
    end if;
    vinit:=ar; -----------------------------------------------
    , quand je lance la simulation je trouve le contenu de la matrice (x=(0 0 0 0......0) ) malgrès que normalement elle doit contenir le contenus de la matrice (c)
    déclaré comme constant dans le package suivant :
    ------------------------------------------------------------------------------------------------------------------
    et voici la partie du package contenant la matrice comme constant

    library ieee;
    use IEEE.STD_LOGIC_1164.ALL;
    use IEEE.STD_LOGIC_ARITH.ALL;
    use IEEE.STD_LOGIC_UNSIGNED.ALL;
    --use work.pakk_f3.all;
    package pakk_f6 is
    constant mm:integer:=37;
    constant n:integer:=28;
    type matrice is array(0 to 27,0 to 27)of integer range 0 to integer'high ;
    type matricee is array(0 to 27,0 to 27)of integer range 0 to 100;
    type etat is(et0,et1,et2,et3,et4,et5,et6 );
    type matrice2 is array(natural range <>,natural range <>)of etat;
    type vectt is array(0 to 4)of integer;
    type integer_vector is array(natural range <>)of integer range 0 to 100;
    type std is array (0 to 41)of std_logic_vector(0 to 49);
    constant inf:integer:=integer'high;
    end package pakk_f6;
    package body pakk_f6 is
    constant c: matrice:=
    ((INF,100,INF,INF,INF,INF,INF, INF,.......................... .............................. .............................j usqu'à la fin de la matrice));
    la matrice est vraiment grande

    voilà, et merci d'avance.

  4. #4
    jiherve

    Re : comment utiliser des données stocker dans un package en vhdl?

    Bonsoir,

    Ceci dit la procédure déclarée (il manque le end!!) ne sera effective que si instanciée dans un process c'est à dire en dehors d'un package, il faut tout de même donner des valeurs aux entrées.
    Mais Dieu que c'est compliqué, est ce bien nécessaire!
    Vu la taille des matrices tu vas tout exploser.
    (0..27)(0..27) d'integer cela fait 288 230 376 151 711 744 octets (environ 300 peta octets) c'est pas raisonnable même avec une allocation dynamique de mémoire.
    Il doit y avoir un problème de conception .
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    invitec2f0ffc9

    Re : comment utiliser des données stocker dans un package en vhdl?

    salam
    non il n' y a pas de faute de conception, la matrice de taille (27 * 27) est très nécessaire, car c'est une matrice de description d'une zone géographique elle sert à décrire les distances entre des endroit et même si je voulais couvrir une zone plus grande cette taille de matrice va augmenter , et pour le end de la procédure je n'est pas de faute de compilation ( je vous ai pas coller tout le code , car je sais que c'est complexe ) mon problème c'est que je ne veux pas utiliser une RAM pour stocker mes données pour ne pas trouver les problème de l'appel avec le port map et tout

    en tout cas merci beaucoup!

  7. #6
    jiherve

    Re : comment utiliser des données stocker dans un package en vhdl?

    Bonsoir
    Hier j'avais un doute et donc j'ai vérifié dans ma bible VHDL : on ne peut pas placer le body d'une procédure dans un package.
    Pour ce qui est du stockage c'est moi qui ai fait une betise de calcul en fait il n'y a que 3,2 KO je ne sais pas trop pourquoi je suis parti sur une taille de bus, l'esprit ailleurs sans doute.
    désolé.
    JR
    l'électronique c'est pas du vaudou!

Discussions similaires

  1. stocker image dans base de donnees
    Par invitec7fd8fb0 dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 12/05/2012, 02h58
  2. C# ou R pour stocker des données d'internet
    Par invite754f3790 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 16/08/2011, 21h42
  3. Problème avec package du VHDL
    Par invite25a451cd dans le forum Électronique
    Réponses: 2
    Dernier message: 27/11/2010, 21h29
  4. Utiliser mon rameur pour produire et stocker de l'énergie électrique ?
    Par invite9e9e1b7e dans le forum Environnement, développement durable et écologie
    Réponses: 56
    Dernier message: 09/10/2009, 23h50
  5. Comment utiliser des fonctions dans C++ Builder ?
    Par invite386d297b dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 09/05/2007, 08h43
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...