déclaration de variable en VHDL
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

déclaration de variable en VHDL



  1. #1
    invitea0c4ca07

    déclaration de variable en VHDL


    ------

    salut,
    je viens d'écrir ce simple code mais le code me fait sortir des erreurs au niveau de la déclaration de la variable "N" qui doit étre modifié à l'intérieur du process
    voila le code
    Code:
    library ieee;
    use ieee.std_logic_1164.all;
    use ieee.numeric_std.all;
    
    entity code is
     generic (N : integer:=192);
     port (
     tab : in bit_vector(0 to (N-1));
        clk:in std_logic
       );
    end  code ;
     
    architecture arch_code  of code is
    type string is array (positive range <>) of character;
     SIGNAL modulation : STRING (6 downto 1);
    signal s:integer;
    
    begin 
    process(clk)
    begin
    if (clk'event and clk='1')then
    case modulation is
             when "BPSK" =>
              N <= 192;
              s <= 1;
      
          when "QPSK" =>
              N <= 384;
              s <= 2;
     
           when "16QAM" =>
              N <= 768 ;
              s <= 4;
             when "64QAM" =>
              N <= 1152  ;
              s <=6;
            when others => null;
    end case;
    end process;          
    end arch_code ;
    voila l'erreur dans les lignes (N <= 192, N <= 384, N <= 768, N <= 1152) il m'affiche que N n'est pas un signal, et si je la met comme signal elle sera non définit dans tab !!!

    -----

  2. #2
    jiherve

    Re : déclaration de variable en VHDL

    Bonsoir,
    On ne peut pas modifier un "generic" dans le "process" appelé et la modification dans l'appelant est statique!!!
    la variable doit être déclarée derrière "process" et avant "begin" ici la déclaration sera du genre:variable N : integer range x to y;
    l'affectation se fait par N := 192;
    lorsque l'on déclare des "integer" toujours associer un range sauf si l'on veut tirer du 32 bits qui sera l'occasion d'une belle surprise lors de la synthèse.
    Ne perd pas de vue qu'une variable change d’état immédiatement il n'y a pas de "delta" et qu'elle n'est visible que dans le "process".
    Comme ici tu n'en fais rien je suis perplexe pour la suite.
    JR
    Dernière modification par jiherve ; 07/04/2013 à 19h37.
    l'électronique c'est pas du vaudou!

  3. #3
    stefjm

    Re : déclaration de variable en VHDL

    Une variable s'affecte par l'opérateur ":="
    Normal que que le compilateur veuille un signal pour l'affectation "<=" d'un signal.

    Pour le code, je ne comprend pas le but recherché.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  4. #4
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    Dans ce cas elle sera indéfinit dans "tab" parce que les dimensions de tab changent en changeant la variable N

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

    Re : déclaration de variable en VHDL

    slt stefjm,
    le but du code est de déterminer la taille du tableau "tab" (entrées) selon le type de modultaion, N est la taille du tableau. j'espére que ça soit clair

  7. #6
    Jack
    Modérateur

    Re : déclaration de variable en VHDL

    Pas très malin de poster 2 fois la même chose:
    c'est interdit par la charte car anti productif
    accessoirement ça fait perdre du temps pour remettre de l'ordre.

  8. #7
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    Mr JR, merci pour votre réponse trés interréssante, mais il me reste le probléme de N au début, elle sera indéfinit dans "tab", car elle présente la taille du tableau qui est une variable.

  9. #8
    jiherve

    Re : déclaration de variable en VHDL

    again,
    ben oui, donc soit c'est un generic et il n'est pas modifiable dynamiquement soit c'est une variable et cela ne fonctionne pas.
    Si tu expliquais ce que tu veux faire exactement?
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    je suis entrain d'écrir le code de l'entrelaceur de wimax, la taille du bloc de données en entrée dépand du type de la modultaion, pour cela j'ai déclaré un tableau de données "tab", et dans le process j'ai tester le type de la modulation pour fixer la taille du tableau N(sig taille du bloc de données en entré) . j'explique plus?

  11. #10
    jiherve

    Re : déclaration de variable en VHDL

    re,
    le plus simple est de déclarer avec un generic une valeur de N majorante de tous les cas et de ressortir un signal portant la valeur effective.
    JR
    l'électronique c'est pas du vaudou!

  12. #11
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    SVP comment extraire la partie entiére d'une variable en VHDL?

  13. #12
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    Code:
     mk <=((N/16)*(k mod 16)+ (floor(k/ 16)))
    le compilateur m'affiche "no feasable entries for subprogram floor"
    est ce qui'il y a une suggestion?

  14. #13
    invitea0c4ca07

    Re : déclaration de variable en VHDL

    N'y a aucun qui veut m'aider
    voila la solution pour ceux qui ont le méme probléme
    Code:
    mk <=((N/16)*(k mod 16)+ natural(FLOOR((Real(K /16)))));

  15. #14
    jiherve

    Re : déclaration de variable en VHDL

    Bonsoir,
    sauf si tu utilises des "real" alors toutes les variables VHDL (integer, signed) sont des entiers .
    avec les "real" il faut la librairie math_real :use IEEE.math_real.all.
    Ce n'est généralement pas synthétisable!
    JR
    l'électronique c'est pas du vaudou!

  16. #15
    stefjm

    Re : déclaration de variable en VHDL

    Je n'ai rien dit parce que je ne suis plus trop au courant des derniers matériels, mais tu me rassures!

    Ce genre de transtypage est typique des informaticiens qui se foutent pas mal de savoir comment c'est réalisé.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

Discussions similaires

  1. Déclaration d'une variable Hi Tech C
    Par invite7e727e46 dans le forum Électronique
    Réponses: 5
    Dernier message: 18/07/2010, 12h32
  2. Déclaration d'une variable un peu spéciale en C
    Par inviteba7165a5 dans le forum Électronique
    Réponses: 6
    Dernier message: 22/05/2008, 15h59
  3. Déclaration Variable C
    Par invite3c35244f dans le forum Électronique
    Réponses: 6
    Dernier message: 16/10/2007, 19h01
  4. Déclaration variable en C
    Par invite3c35244f dans le forum Électronique
    Réponses: 7
    Dernier message: 20/09/2007, 08h45
  5. Partage de déclaration entre plusieurs fichier VHDL
    Par WhiteBird dans le forum Électronique
    Réponses: 2
    Dernier message: 04/12/2006, 21h29
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...